作者tas72732002 (蔥頭)
看板C_and_CPP
標題[問題] 關於聊天室schema設計問題
時間Sat Jan 21 15:56:22 2017
請問一下各位大大, 假設我要做一個聊天室, 包含團隊頻道和個人頻道
db schema 大致為
好友table
uid
fid
time
使用者table
userid
time
聊天table
sid
type(1:團隊 2:個人(私聊))
rid(房間id)
msg(裡面會包含訊息與發送者資訊)
time
如果是團隊部分rid, 就是user所加入的團隊id, 比較單純
但如果個人部分的rid
我的想法是A_B的userid做為rid
例如玩家A userid : 100001, 玩家B userid : 100002
rid = 100001_100002(小的編號放置在前面)
但這樣查詢有點麻煩, 如果我要查詢目前我的私聊有哪些新訊息
我必須
1. 拉出我的好友名單
2. 將我的userid與好友userid組成rid, 還需判斷小的編號要放前面
3. 將組好的rid, 丟到聊天table查詢
感覺有點複雜, 不知道大家有沒有比較好的設計?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.34.181.227
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1484985384.A.02E.html
※ 編輯: tas72732002 (114.34.181.227), 01/21/2017 15:57:18
推 soheadsome: 用nosql(逃 01/21 16:43
→ james732: 看起來不是本板的業務? 01/21 17:17
→ lucky1lk: 你來錯版了... 01/21 17:33
→ tas72732002: 要到那個版? 01/21 18:30
→ lucky1lk: 我很想反問你 你在問(做)啥?! 一樓有關鍵字... 01/21 19:23
推 LPH66: 你文章的第二行就講 DB schema 了, 問題也是 schema 設計 01/21 21:39
→ LPH66: 不過我個人覺得這篇丟去 Database 版可能不會有你要的答案 01/21 21:40
→ LPH66: 這比較像是 DB 和程式的協同設計, 我會建議去一般程式設計 01/21 21:41
→ LPH66: 的 Programming 版發問 01/21 21:41
→ LPH66: 這裡是討論 C/C++ 語言, 你的問題好像也沒特定程式語言... 01/21 21:46
→ dannypsnl: 群組中的所有使用者都是發訊息給聊天室,聊天室轉寄訊 01/21 21:52
→ dannypsnl: 息給所有人 01/21 21:52
推 wtchen: 板工正在搭飛機,這篇等我到家你就死定了 01/21 23:54
→ MOONRAKER: 完了完了 死定了 01/22 11:22