【发布时间】:2011-10-23 20:21:29
【问题描述】:
关于消息系统的讨论有很多,但主要与电子邮件结构有关。在规范化数据库中,如何成为成员消息传递的最有效方式?
我正在考虑创建一个包含五列的消息表:
ID (PRIMARY KEY)
First_Person (FK user_id)
Second_Person (FK user_id)
Message
date
我担心看这张大桌子。
查找某个人的所有消息(例如 user_id 876)
SELECT * FROM messages WHERE First_Person='876' OR Second_Person='876'
两个人之间的交流
SELECT * FROM messages WHERE (First_Person='876' OR Second_Person='876')
AND (First_Person='1500' OR Second_Person='1500') ORDER DESC BY date
由于这种消息传递就像聊天一样,对于成千上万的成员,这张表可以增长到数十亿行(而不是数百万行)。那么,在这么大的表中搜索消息效率高吗?
【问题讨论】:
-
那么消息的文本存储在哪里?在另一张桌子上?
-
否,在消息列中(表格为消息)。
-
哦。我将其读作“消息日期”,因为当时尚未对其进行编辑以将它们放入代码块中,并且它们都在一行上并且没有逗号分隔。你也说它有四列,但它显然有 5。
-
你说的很对 :) 我稍后添加了日期。
标签: mysql database email normalization messaging