我正在创建一个简单的私人消息系统,但我不确定哪种数据库设计更好。
第一个设计是一个消息表,以及一个消息评论表:
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
我想听听你的意见!
在这种情况下,我会投票给一张桌子。
一般来说,只要两个表中的数据相同或非常相似,并且它们所代表的逻辑概念密切相关,我就会将它们放在一个表中。如果数据有很多差异或者概念确实不同,我会将它们做成两个表。
如果您创建两个表,并且发现自己经常编写对两个表进行并集的查询,则表明应该将它们合并。
如果您创建一张表,但发现有许多字段对于情况 A 始终为空,而其他字段对于情况 B 始终为空,或者如果您为字段赋予尴尬的双重含义,例如“对于类型 A,此字段是邮政编码,但对于 B 型,它是产品序列号”,这表明它们应该被分解。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)