2012-11-12 144 views
2

我正在處理這種情況。我在SQL SERVER中有三個表,分別叫做MoviesSeriesOrders如何建立兩個表之間的一對多關係

Orders有一個ItemId這可能是MovieId(電影PK)或SerieId(系列PK)。我的意思是,在訂單表中可以有來自系列電影的記錄。

我不知道如何維持這種關係,或者可能是實現它的最佳方式。直到我知道,我只能創建2個表之間的1對1或1對多關係,而不是3個。

在此先感謝。

+0

我個人總是試圖從設計這些情況下離開創建表的項目Id主鍵,就變得難以執行鍵和你總是最終不得不決定使用即時連接。電影和系列片段分裂的基本原理是什麼 - 它們不能被視爲「媒體」,而且你在該表格上有一個類型字段? – Andrew

回答

3

在這種情況下,我認爲最好將電影和系列文件存儲在同一個表格中,並使用通用屬性incl。一個表示類型(Movie或Serie)的列,然後在單獨的表(如果你想規範化)或甚至在同一個表中(爲了避免連接)而具有附加屬性。

+0

+1,將所有常見數據存儲在一張表中,並使用附加表進行擴展。 –

0

您應該在sql-server中瞭解工具table inheritance

你有產品並且這款產品可能是一個電影意甲

在聯樣品可能是學生老師

0

最好的辦法是:

  1. 創造電影和電視劇的通用表與兩個實體應該分享(如項目Id)領域。
  2. 爲引用在步驟1上創建的表的電影創建表,其中包含必須僅針對電影編譯的字段。這張新表將與前一張表格一一對應。
  3. 同系列的東西。
  4. 創建訂單表,並設置項目Id的外鍵指向在步驟1中
相關問題