我想在PHP和MySQL中實現一個消息傳遞系統,但是我在決定如何執行表和查詢時遇到了一些麻煩。消息傳遞系統數據庫模式
允許多個參與者的系統的最佳方法是什麼?我想我可能需要3個表(除了用戶表)。
喜歡的東西
Conversation
------------
id
Messages
--------
id
conversation_id
from_id
subject
message
from_timestamp
Participants
------------
conversation_id
user_id
last_read_timestamp
事情是這樣的設置我不得不通過時間戳,而不是蜻蜓點水每個消息以檢測讀短信。我也可以隨時添加參與者。
你們認爲什麼?
在此先感謝。
@ChrisWalton - 'from_id'將是消息發件人的user_id。許多參與者可能屬於對話,但消息可能只屬於一個參與者(或前參與者 - 仍在考慮如何做到這一點)。對話的所有參與者都可能看到與其相關的消息。歡呼 – RS7 2011-05-17 15:39:05
我認爲from_id是作者的user_id。如果我理解正確,「參與者」表將會話鏈接到用戶表(這裏未顯示)並存儲上次用戶閱讀此對話的時間。 – Jad 2011-05-17 15:41:48
很想看看你如何處理一個參與者的問題!這是我見過的更好的表格模式之一。 – 2013-11-07 04:58:56