消息传递系统数据库架构

时间:2011-05-17 15:17:04

标签: mysql database schema messaging message

我正在尝试在PHP和MySQL中实现一个消息传递系统,但是我在决定如何进行表和查询时遇到了一些麻烦。

允许多个参与者的系统的最佳方法是什么?我想我可能需要3个表(除了用户表)。

这样的东西
Conversation
------------
id

Messages
--------
id
conversation_id
from_id
subject
message
from_timestamp

Participants
------------
conversation_id
user_id
last_read_timestamp

设置方式我必须通过时间戳检查读取消息,而不是勾选每条消息。我也可以随时添加参与者。

你们有什么想法?

提前致谢。

2 个答案:

答案 0 :(得分:3)

我没有多大抱怨抱怨:)我可能会在会话表中缓存最后一个修改日期,以便列出"未读"会话可以快速显示。每次在对话上发布消息时,都会更新此日期。

答案 1 :(得分:1)

我会把主题字段放在会话表上。将它放在每条消息上看起来都是多余的。 此外,我还在其表中保存了对话的创建时间和作者用户ID。