【发布时间】:2014-10-23 23:05:41
【问题描述】:
我正在尝试在 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。许多参与者可能属于一个对话,但一条消息可能只属于一个参与者(或前参与者 - 仍在考虑如何做到这一点)。对话的所有参与者都可以看到与其相关的消息。干杯
-
我认为from_id是作者的user_id。如果我理解正确,“参与者”表会将对话链接到用户表(此处未显示)并存储用户上次阅读此对话的时间。
-
很想看看你是如何处理一个参与者的问题的!这是我见过的更好的表模式之一。
标签: mysql database schema messaging message