鍍金池/ 問答/Java  Python  C  Linux  網(wǎng)絡(luò)安全/ 請問下私聊,群組這種功能后臺實現(xiàn)邏輯以及表設(shè)計思路

請問下私聊,群組這種功能后臺實現(xiàn)邏輯以及表設(shè)計思路

我看我們公司私聊和群聊這種功能在設(shè)計上是單表的,群里一個人發(fā)送消息后,沒當前群里每個人都存儲一條數(shù)據(jù)。我感覺這樣的方式肯定是有問題,群里有1000人,每人發(fā)送一條消息,將要存儲1000*1000記錄,而且很多都是冗余信息。是不是應(yīng)該維護一個群組聊天記錄表,根據(jù)當前用戶所在的群組去找當前群組聊天記錄?還是說通過消息中間件那種訂閱主題模式,每一個群組做為一個主題群組成員去訂閱,然后實現(xiàn)分發(fā)。請問下qq實現(xiàn)這種功能機制什么,求一個最佳實踐,謝謝

回答
編輯回答
笨小蛋

LayIM,這個是基于這個第三方的插件頁面的接入案例,應(yīng)該能給點靈感

2018年2月4日 23:19
編輯回答
兔寶寶

關(guān)于聊天記錄我個人在設(shè)計網(wǎng)站消息分發(fā)的時候邏輯是
設(shè)置一個字段
0:面向所有用戶的消息(群發(fā))
n:給特定某個用戶發(fā)的消息(發(fā)給用戶id為n的用戶)
所以你可以像上述方式設(shè)計,在群調(diào)取后臺記錄時候調(diào)取后臺的標記為0的消息即可
(不過我這個是設(shè)計為單群(也就是網(wǎng)站全站消息),多群消息的話你可以自己結(jié)合這個邏輯考慮一下)
(不一定有用,不過這樣可以節(jié)省數(shù)據(jù)庫空間,也就是說,用戶在調(diào)取自己信息的時候數(shù)據(jù)庫會返回用戶id相符和與字段為0的消息)

2018年3月1日 22:26
編輯回答
陌上花

建議使用redis

2017年3月17日 01:42