我正在创建一个简单的私有(private)消息系统,我不确定哪种数据库设计更好。
第一个设计是消息表,消息评论表:
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
我想听听你的意见!
最佳答案
在这种情况下,我会投票给一张 table 。
一般来说,每当两个表中的数据相同或非常相似并且它们所代表的逻辑概念密切相关时,我会将它们放在一个表中。如果数据有很多差异或者概念真的不同,我会把它们做成两个表。
如果您制作了两个表,并且您发现自己经常编写查询来对两者进行并集,则表明它们应该合并。
如果您创建了一个表,但您发现有许多字段对于情况 A 始终为空,而其他字段对于情况 B 始终为空,或者如果您给字段赋予尴尬的双重含义,例如“对于类型A 此字段是邮政编码,但对于类型 B,它是产品序列号”,这表明它们应该被分解。
关于database - 私信数据库设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6984750/