私人消息数据库设计

时间:2011-08-08 15:44:36

标签: database private-messaging

我正在创建一个简单的私人消息系统,我不确定哪种数据库设计更好。

第一个设计是消息表和消息注释表:

Message
---------------
id
recipientId
senderId
title
body
created_at

MessageComment
---------------
id
messageId
senderId
body
created_at

第二个设计是消息和评论的一个表格,以及一个加法字段messageId,因此我可以将消息链接为评论。

Message
---------------
id
recipientId
senderId
messageId
title
body
created_at

我想听听你的意见!

3 个答案:

答案 0 :(得分:5)

在这种情况下,我会投票给一张桌子。

通常,只要两个表中的数据相同或非常相似,并且它们所代表的逻辑概念密切相关,我就将它们放在一个表中。如果数据存在很多差异或概念确实不同,我会将它们分为两个表。

如果你制作了两个表,并且发现自己经常编写两个联合的查询,则表明它们应该合并。

如果你创建了一个表,但是你发现有很多字段对于案例A总是为空,而对于案例B总是为空的其他字段,或者如果你给字段赋予笨拙的双重含义,比如“for type”这个字段是邮政编码,但对于B类,它是产品序列号“,这表明它们应该被打破。

答案 1 :(得分:0)

使用单个表是最有利的。

它允许更好的消息线程可能性,并减少重复工作,即当您想要添加列时会发生什么。

答案 2 :(得分:0)

我宁愿使用第一个并在两个表中包含一个额外的字段del_code。因此,您将能够隐藏已删除的邮件,并将其保留在您的数据库中。