2012-04-18 55 views
0

我想佈局相似類型的多個表的數據庫表中的傳承。考慮一個簡化的獸醫系統。我有以下表格:如何創建數據庫架構,以便與EF

  • 業主

我的一個限制是,每個業主可以有完全相同1的寵物。我想保持參考完整性,但不希望我的Owners表有三列專用於外鍵(因爲我可能需要在某些時候添加更多的寵物物種)。

此外,實體框架工作時,我想有實體設置爲簡單Owner.Pet鏈接,並有潛在的機制把手決定它需要從拉哪個表。

我想出了一個辦法做到第二部分,但它是凌亂的,最好的。有沒有人嘗試過這樣的事情,並且祝你有個好運氣來提供一個有點優雅的解決方案?

+1

映射繼承有足夠的文檔。你沒有找到任何幫助你的東西嗎? – 2012-04-18 21:36:51

+0

你描述的最可能適合TPT繼承,但是你將會有一個名爲Pet的附加表,它將成爲Dogs,Cats和Birds的父類。 – 2012-04-19 09:49:41

+0

我的確嘗試創建一個有效的寵物表,它包括一個ID,名字和寵物的性別。然後,我讓每個「子」表使用來自Pet表的相同ID(即每個都有一個PetID,而不是DogID,CatID或BirdID)。但是,我不能讓EF做我想要的東西(雖然也許這是不是意味着要) – BowlerMonk 2012-04-19 12:41:53

回答

1

對於TPT的繼承,你會成爲一個ID叫PK一個Pet表。

然後,您可以製作第二個表格Cat,其中PK爲爲PK,FK爲Pet

已經做到了這一點,你現在可以create a TPT model using these steps