在我的數據庫單獨或共同關係的表我有一個像todos
,events
,discussions
等
他們每個人都可以有tags
,comments
,files
,以及其他相關的項目不同的實體。MySQL的:不同實體
現在我要設計這些表之間的關係,我想我有以下兩種可能的解決方案可供選擇:
1.分居關係表
所以我將創建todos_tags
, events_tags
,discussions_tags
,todos_comments
,events_comments
,discussions_comments
等表。
2.常見關係的表
我將創建僅這些表中:related_tags
,related_comments
,related_files
等。具有這樣的結構:
related_tags
entity
(事件|討論| todo |等 - 作爲枚舉或tinyint(1 | 2 | 3 |等))entity_id
tag_id
我應該使用哪種設計?
也許你會說:這取決於情況,我認爲這是正確的。我需要查詢其中一個實體(事件,討論或待辦事項),但在某些情況下,我需要它們都在同一個查詢中(兩個事件,討論,例如具有指定標籤的待辦事項)。在這種情況下,如果我使用分離關係表,我必須在3+桌上進行聯合(在我的情況下,它可以是5+桌)。
我不會在每個表中有超過1000-2000行(事件,討論,todos);
什麼是正確的路要走?對此有什麼個人經驗?