0
我有一个简单的消息系统:用户向组发送消息。在简单的聊天应用程序中存储不同类型的“消息”
我试图尽可能地规范化,并正确地做事情,以便模式可以在需要时进化。
我决定有一张存储每条消息的表格,还有一张用于不同类型消息的表格。
但我发现这个问题。对message
的查询没有意义,因为它们不会生成消息。您必须分别查询message_image
和message_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)
这样做有什么不利吗?
您是否每封邮件有多个图片和/或每张图片有多封邮件? – WillardSolutions
@EatPeanutButter每条消息只有一个图像。每封邮件有一条短信。它可以是一个或另一个,而不是两个。 – BugHunterUK
所以你可以添加一个外键约束到'message'引用'message_image'以及一个外键约束在'message'引用'message_text'?然后,你可以在'message'中查找行,如果你真的想在不同的表中分开文本和图像,那么这些列<> NULL,那么你可以查找行。 – WillardSolutions