所以我有一個由我們的DBA設置的模式,現在我需要將它轉換爲SQL Azure。我在嘗試將它轉換爲我們用於Azure移動服務的.NET後端時遇到了一些麻煩。這裏的架構:如何創建嵌套的:Entity Framework中的多個關係?
的這些都是一個一對多的關係。所以你會注意到有多個關聯多個表的外鍵。例如在Scenario表中,項目表和區域表有一個外鍵。這是設置數據庫的好方法嗎?難道你只是將表關聯到指向父表的指針嗎?例如在Scenarios表格中,只有SubAreas的FK?起初我想在我的Azure的服務創建EntityData類,像這樣:
public class SubArea : EntityData
{
public string SubAreaAttenuation {get; set;}
...
...
public virtual Area Area {get; set;}
public virtual ICollection<Scenario> Scenarios {get; set;}
}
我需要在分區明確鍵區和項目?或者是足夠的指針回到區域?我覺得DBA有這些額外的密鑰是有原因的(可能會讓搜索變得更容易?)但是我對數據庫的瞭解還不夠深入。
關於第二點:那麼創建像上面的「SubArea」類這樣的實體類是一個好主意嗎?我在哪裏收集兒童(場景)和指向其父級(Area)的指針。然後,爲了像圖中那樣獲得層次關係,我需要創建連接? – WiteCastle 2014-09-02 00:32:55
是的,那絕對是我會做的。雖然你不應該像在LINQ中編寫它們那樣「創建連接」,但是要利用你提到的導航屬性。只有在性能明顯受損的情況下,您纔可以考慮使用冗餘外鍵(單個Id值)到樹中較高的父級。 – 2014-09-02 06:44:03