国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

Achilles / 3924人閱讀

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

第一版設(shè)計
需求 :單用戶之間通信(融合了用戶反饋需求)
數(shù)據(jù)庫設(shè)計: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è)計
需求:增加*企業(yè)管理員*和*系統(tǒng)管理員*的通知功能,即特殊用戶的一對多功能
數(shù)據(jù)庫設(shè)計:兩張表,message保存消息內(nèi)容,messagelog保存關(guān)系

message表


type:private:單對單 、 public:企業(yè)通知、 global:系統(tǒng)通知;
from_id:保存了發(fā)信者的userid,因為信的發(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)點:“不用一次性插入N條,且不會產(chǎn)生無效的記錄”。只有活躍用戶才保存收取通知的記錄,發(fā)件后再未登錄的用戶不會保存。
    缺點:聯(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)信”的實現(xiàn)
群發(fā)“站內(nèi)信”的實現(xiàn)(續(xù))
兩年后,再議“站內(nèi)信”的實現(xiàn)
百萬級用戶量的站內(nèi)信群發(fā)數(shù)據(jù)庫設(shè)計

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

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

相關(guān)文章

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

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

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

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

    Rainie 評論0 收藏0
  • 基于workerman實現(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元查看
<