2014-10-29 61 views
0

從我所瞭解的關係數據庫不適合處理多態關係,但有沒有簡單的方法將多個表集成到一個標記表中。基本上我想要實現的是有一個標籤表,但標籤名稱來自3個表格(遊戲,平臺或公司)中的1個。見下面設計一個實體模型:來自多個表的標籤

enter image description here

上午我看這從錯誤的方法還是我在正確的軌道上?有人會建議一種不同的方法嗎?

+0

使用從通用標記表到特定表(具有分類器列或多表的單個表)的繼承 – 2014-10-29 09:14:57

+1

如何在標記表中使用'name'和'tag_type_id'字段? 'tag_type_id'是來自另一個表'tag_types(id,name)'的行的id(這個表應該有像(1,'games'),(2''platforms'),(3,'companies')等等) – kums 2014-10-29 10:06:59

回答

1

你的情況聽起來關係建模和對象建模之間的不匹配。如果你有興趣在設計提供繼承(沒有多態性)是最接近的關係表,然後擡頭看問題,答案和信息這些標籤下:

如果您有興趣瞭解更多的細節,看Martin Fowler處理相同的技術。

如果您的興趣是繪製遊戲,平臺或公司與一些我稱之爲「標籤提供商」的未命名超類之間的IS-A關係,請查看「EER泛化/專業化」。 (EER代表增強實體關係)。這顯示瞭如何繪製關係圖,而沒有提供關於如何實現它的任何細節。

0

你是對的,因爲有文章,視頻&標籤之間有多對多的關係。

請參閱, 一篇文章=> with =>很多標籤 一個標籤=>屬於=>很多文章。

所以要保存映射第3,4映射表是必要的。

3表將有第二條+標籤之間的關係

4表將有視頻+標籤之間的關係

更新=>

對於其他表與標籤表關聯,使3更多表格:

第5張表格將會與公司之間有關係+標籤=>companies_tags

6表將有遊戲+標籤之間=>games_tags

7日表關係將有平臺+標籤之間的關係=>platforms_tags

+0

林不知道你到底是什麼意思。我已經知道如何將標籤表連接到文章和視頻表,但是如何將遊戲,平臺和公司表連接到標籤表? – 2014-10-29 09:42:12

+0

@NicholasLaw然後你在你的問題中明確指出你想將標籤表連接到公司表,平臺表 – 2014-10-29 09:45:02