2016-10-01 71 views
1

我正在聊天網站上工作。我如何存儲2個不同聊天的消息。我是否必須爲每個聊天創建一個新表格,或者是否可以有一個存儲所有聊天的表格?在單個數據庫表中存儲不同聊天的消息

從長遠來看(即在搜索過程中),後面的方法會受到影響,因爲每次用戶打開聊天時都會從該表中檢索所有消息?

回答

4

這裏是我推薦的,只用一個表來存儲消息,你將需要更多的表來維護其他相關數據。 也作爲羣組聊天對待一對一的聊天,區別僅在於最終用戶它只被視爲1-1。

以下僅僅是基本的結構,讓你開始,在實際你將不得不添加更多的列或改變結構,以支持數據同步,讀,交付收件人,附件等

Table: User 
Columns: userId, name, image and other user info columns 

Table: Group 
Columns: groupId, name 

Table: Group_User_X 
Columns: groupId, userId 

Table: Message 
Columns: messageId, senderUserId, groupId, content 

現在,爲任何給定的用戶加載消息,您可以簡單地加入Group_User_X和消息表,併爲用戶所屬的組提取消息。

如果您需要任何進一步的幫助,您可以與我聯繫[email protected]

+0

感謝你了 –

+0

我還有一個困惑。每個消息的長度可以從只是一個HI變化一個很長的消息..所以,如果你使用的是mysql,那麼我應該使用哪種數據類型的消息內容 –

+0

,你可以使用文本http://boolean.co.nz/blog/max-length-for-mysql-text-field-類型/ 135/ –

相關問題