私人消息数据库设计

tam*_*mir 3 database private-messaging

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

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

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

MessageComment
---------------
id
messageId
senderId
body
created_at
Run Code Online (Sandbox Code Playgroud)

第二个设计是消息和注释的一个表,以及一个添加字段,messageId因此我将能够将消息链接为注释.

Message
---------------
id
recipientId
senderId
messageId
title
body
created_at
Run Code Online (Sandbox Code Playgroud)

我想听听你的意见!

Jay*_*Jay 5

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

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

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

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