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