我正在尝试在PHP和MySQL中实现一个消息传递系统,但是我在决定如何进行表和查询时遇到了一些麻烦。
允许多个参与者的系统的最佳方法是什么?我想我可能需要3个表(除了用户表)。
像
这样的东西Conversation
------------
id
Messages
--------
id
conversation_id
from_id
subject
message
from_timestamp
Participants
------------
conversation_id
user_id
last_read_timestamp
设置方式我必须通过时间戳检查读取消息,而不是勾选每条消息。我也可以随时添加参与者。
你们有什么想法?
提前致谢。
答案 0 :(得分:3)
我没有多大抱怨抱怨:)我可能会在会话表中缓存最后一个修改日期,以便列出"未读"会话可以快速显示。每次在对话上发布消息时,都会更新此日期。
答案 1 :(得分:1)
我会把主题字段放在会话表上。将它放在每条消息上看起来都是多余的。 此外,我还在其表中保存了对话的创建时间和作者用户ID。