存储不同类型的"消息"在一个简单的聊天应用程序中

时间:2016-11-21 20:26:47

标签: sql

我有一个简单的消息系统:用户向小组发送消息。

我尝试尽可能正常化并正确地执行操作,以便架构可以在需要时发展。

我决定有一个存储每条消息的表,以及一个用于不同类型消息的2个表。

但是我发现了这个问题。对message的查询毫无意义,因为它们不会产生消息。您必须单独查询message_imagemessage_text。这让我觉得我的模型错了。

message
-------
+ id (int)
+ group_id (int)
+ sender_id (int)
+ created_at (timestamp)

message_image
-------------
+ id (int)
+ title (varchar)
+ url (varchar)
+ created_at (timestamp)

message_text
------------
+ id (int)
+ message (varchar)
+ created_at (timestamp)

这样做是否有任何负面影响?

1 个答案:

答案 0 :(得分:1)

将外键约束添加到引用message的{​​{1}}以及引用message_image的{​​{1}}中的外键约束。然后你可以在消息中查找那些cols<>的行。空值。