2016-12-31 89 views
-2

假設我有一個SQL數據庫,其表格如A,B,C和Z.A,B和C三個表格都與表格Z有一對多的關係。我想到下面提到的解決方案,但需要建議或更好的解決方案,如果有的話。多個表格需要與普通表格有一對多關係

解決方案 -

  • 創建一個名爲「LinkZ」多了一個表,該表與表「Z」
  • 添加外鍵字段一個一對多的關係表A,B和表「LinkZ」的ç
  • 這樣,將來如果有更多的表添加到需要與表'Z'關係的數據庫中,我們只需要將外鍵添加到新添加的'LinkZ'表中,因爲它已經有一對多的關係。

請提出解決方案,如果存在滿足我的需求。

編輯 -

@Gordon,「如果所有的表有一個‘與Z 1一對多’的關係,那麼你並不需要一個鏈接表在所有你需要一個鏈接表時,你的關係許多一對多」。我需要你從你的回答中引用的這種友好關係。但如果遵循傳統的方式,那麼我需要在Z中添加AID,BID,CID以實現與Z的1-Many,然後'Z'表中包含許多表示與其他表的外鍵的列(未來可能還包括其他表同樣的關係,所以在這種情況下,我想避免只有外鍵Z的許多列)這就是爲什麼我創建了虛擬表'LinkZ',它爲其他表A,B和C提供了幻想,表中所有表都有1-Many直接與Z的關係。

+0

我同意@ gordonlinoff的回答,你可能不需要一箇中間的「鏈接」表。但我也同意他的看法,你確實想要達到什麼目標並不明確。但我敢打賭,如果你在sql小提琴中創建了一個最小的表格示例,那麼你可以從我或其他人那裏快速得到答案。 –

+0

你的寫作不清楚。請舉例說明你所描述的一切。 – philipxy

回答

1

這太長了評論。

如果所有表與Z都有「一對多」關係,那麼根本不需要鏈接表。當你的關係是多對多時,你需要一個鏈接表。

目前還不清楚聯動是怎麼回事哪一種方式,但無論你想在每一個ABZIDC,或者你想AIDBIDCIDZ