考慮下面的表結構:在一個表中有幾個外鍵是不是很好的做法?
titles(titleID*, titleName)
platforms(platformID*, platformName)
products(platformID*, titleID*, releaseDate)
publishers(publisherID*, publisherName)
developers(developerID*, developerName)
products_publishers(platformID*, titleID*,publisherID*)
products_developers(platformID*, titleID*, developerID*)
產品表使用platformID和titleID的兩個外鍵一個木匠表。這是因爲某些標題在不同平臺上具有相同的屬性。爲了避免數據重複,我創建了joiner表。
當我創建一個products_publishers表時,出現了我的問題。因爲一個產品可以有多個發佈者,所以我必須創建一個由三個外鍵組成的連接器表。這是最佳做法嗎?我的場景可以讓我創建一個包含四個這樣的條目的表格。我考慮使用列來將這些數據存儲在產品表中,並放棄連接器表和發佈器表,但直觀上這不太合適。
有什麼想法?
非常感謝
-1:你能解釋一下爲什麼你懷疑在一張桌子上有幾個外鍵可能不好? – 2010-02-19 13:12:57
我的理由是,在包含多個外鍵的表上執行查詢可能會降低性能,因爲默認情況下查詢將不得不查詢其他幾個表。 – Mohamad 2010-02-19 13:38:56