成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

單系統(tǒng)站內(nèi)信數(shù)據(jù)庫設(shè)計(jì)思路

Achilles / 3956人閱讀

摘要:第一版設(shè)計(jì)需求單用戶之間通信融合了用戶反饋需求數(shù)據(jù)庫設(shè)計(jì)內(nèi)容和收發(fā)者存在一張表中表這里一條存兩次,類似郵件服務(wù)。參考群發(fā)站內(nèi)信的實(shí)現(xiàn)群發(fā)站內(nèi)信的實(shí)現(xiàn)續(xù)兩年后,再議站內(nèi)信的實(shí)現(xiàn)百萬級用戶量的站內(nèi)信群發(fā)數(shù)據(jù)庫設(shè)計(jì)

第一版設(shè)計(jì)
需求 :單用戶之間通信(融合了用戶反饋需求)
數(shù)據(jù)庫設(shè)計(jì):Message內(nèi)容和收發(fā)者存在一張表中

message表:
這里一條Message存兩次,類似郵件服務(wù)。

status:已讀、未讀、已刪

每當(dāng)發(fā)信者發(fā)消息時,就向數(shù)據(jù)庫中寫入兩條數(shù)據(jù),相當(dāng)于推送式。

推送式:
    優(yōu)勢:在用戶量(百、千)和消息量較少時,數(shù)據(jù)庫操作效率高,無需聯(lián)表查詢;
    劣勢:不適合群發(fā),重復(fù)保存文本內(nèi)容。
比方說,Message字段有100個漢字,占用200個字節(jié),那么5萬條,就占用200×50000=10000000個字節(jié)=10M。簡單的一份站內(nèi)信,就占用10M,這還讓不讓人活了。
第二版設(shè)計(jì)
需求:增加*企業(yè)管理員*和*系統(tǒng)管理員*的通知功能,即特殊用戶的一對多功能
數(shù)據(jù)庫設(shè)計(jì):兩張表,message保存消息內(nèi)容,messagelog保存關(guān)系

message表


type:private:單對單 、 public:企業(yè)通知、 global:系統(tǒng)通知;
from_id:保存了發(fā)信者的userid,因?yàn)樾诺陌l(fā)送者是固定的,和發(fā)送日期、信息內(nèi)容一樣是固有信息可以放在一起,若放在messagelog中冗余。
from_status:message在發(fā)送者處的狀態(tài)。同樣是三種。

messagelog表

單用戶間發(fā)件處理:
發(fā)送郵件,插入message和messagelog表各一條記錄。(推送式)

企業(yè)或者系統(tǒng)發(fā)件處理(通知):
發(fā)送郵件,插入message一條記錄,在用戶讀取收件箱時從message中拉取通知。(拉取shi)

拉取式:
    優(yōu)點(diǎn):“不用一次性插入N條,且不會產(chǎn)生無效的記錄”。只有活躍用戶才保存收取通知的記錄,發(fā)件后再未登錄的用戶不會保存。
    缺點(diǎn):聯(lián)表查詢,時間復(fù)雜度更高

顯示一個用戶的收件箱內(nèi)容流程:

通過userid取到用戶信息(所屬企業(yè)id、注冊時間);

查詢rec_id=userid的記錄,取message_id和rec_status;

(處理通知)查詢messagelog表中,符合條件(type=GLOBAL or (type=PUBLIC and company_id= user.company )) and create_time > user.registertime 這些notice,把這些notice和2中的message_id集取交集,非交集中的notice顯示未讀狀態(tài),其他信息按2中讀取的rec_status顯示。

以上還有messag可見有效期的簡單處理,用戶注冊前的通知不可被用戶收到;

其他

1.考慮當(dāng)用戶的company字段變更時對之前那些收到的company通知處理,個人認(rèn)為在轉(zhuǎn)企時變更用戶其他信息時,也把原company的通知也同步到用戶的messagelog記錄中;也可以不管那些未讀的原comopany通知;也可以把已處理的原company通知從messagelog中刪除。這個得看業(yè)務(wù)要求,而且轉(zhuǎn)企這種請求很少發(fā)生。
2.考慮普通用戶下的1->N,當(dāng)N不大時,可仍然按單對單的推送式處理;N很大時,就按通知處理方法。

參考

群發(fā)“站內(nèi)信”的實(shí)現(xiàn)
群發(fā)“站內(nèi)信”的實(shí)現(xiàn)(續(xù))
兩年后,再議“站內(nèi)信”的實(shí)現(xiàn)
百萬級用戶量的站內(nèi)信群發(fā)數(shù)據(jù)庫設(shè)計(jì)

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/17731.html

相關(guān)文章

  • 系統(tǒng)內(nèi)信數(shù)據(jù)庫設(shè)計(jì)思路

    摘要:第一版設(shè)計(jì)需求單用戶之間通信融合了用戶反饋需求數(shù)據(jù)庫設(shè)計(jì)內(nèi)容和收發(fā)者存在一張表中表這里一條存兩次,類似郵件服務(wù)。參考群發(fā)站內(nèi)信的實(shí)現(xiàn)群發(fā)站內(nèi)信的實(shí)現(xiàn)續(xù)兩年后,再議站內(nèi)信的實(shí)現(xiàn)百萬級用戶量的站內(nèi)信群發(fā)數(shù)據(jù)庫設(shè)計(jì) 第一版設(shè)計(jì) 需求 :單用戶之間通信(融合了用戶反饋需求) 數(shù)據(jù)庫設(shè)計(jì):Message內(nèi)容和收發(fā)者存在一張表中 message表: 這里一條Message存兩次,類似郵件服務(wù)。...

    G9YH 評論0 收藏0
  • 系統(tǒng)內(nèi)信設(shè)計(jì)概述

    摘要:也可以在凌晨系統(tǒng)不是那么繁忙的時候操作??偨Y(jié)一下少量用戶設(shè)計(jì)簡單,但浪費(fèi)空間,冗余高中量用戶設(shè)計(jì)較簡單,對表的操作壓力大大量用戶這不是增加幾個表能解決的問題 基本功能 點(diǎn)到點(diǎn)的消息傳送: 用戶給用戶 管理員給用戶 點(diǎn)到面的消息傳送 管理員給用戶群 少量用戶(10-999) 對于用戶非常少的情況,沒有必要深入的考慮數(shù)據(jù)庫的優(yōu)化,采用簡單的表設(shè)計(jì): 如表message ...

    Rainie 評論0 收藏0
  • 基于workerman實(shí)現(xiàn)的web消息推送內(nèi)信功能

    摘要:客戶端訪問后端,確認(rèn)是否有發(fā)送給自己的站內(nèi)信,如有,播放消息提示音,并更改頁面站內(nèi)信未讀數(shù)。登陸請求成功,服務(wù)器監(jiān)聽程序會以作為用戶的連接標(biāo)識。調(diào)用上述的服務(wù)將信息推送到服務(wù)器監(jiān)聽程序。 流程說明 使用 web-msg-sender 作為 服務(wù)器監(jiān)聽程序。 客戶端(瀏覽器)通過websocket連接 服務(wù)器監(jiān)聽程序。 服務(wù)器應(yīng)用程序(后端) 通過curl訪問 服務(wù)器監(jiān)聽程序,將需...

    YFan 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<