我有一个用户驱动的网站。我想添加消息传递功能。我的担忧围绕着我的数据库的可管理性和性能。
我正在考虑这样组织它:我有我的用户表,我的所有用户都有唯一的 id 两个用户之间的任何用户发起的对话都会在“对话”中记录,并且该对话中的所有消息都将使用引用的外键那个conversation_id。
谁能想到不采用这种方法的任何理由?我想知道如果我使用索引并将查询限制为每页约 20 个结果,它的长期性能会如何。
+--------+
| users |
+--------+
|users_id|
| |
+--------+
+-------------+
|conversations|
+-------------+
|id |
|user_id1 |
|user_id2 |
+-------------+
+----------------------+
|conversations_messages|
+----------------------+
|id |
|conversations_id |
|message_body (varchar)|
|message_time (unix timestamp
+----------------------+
编辑:我意识到我无法追踪谁是发件人/收件人。我的第一直觉是简单地添加一个“发件人”列到 conversations_messages