我的應用程序對於域實體有一個複雜的模式。據需要使用SQL Server 2008以下是複雜:關於在使用XML的SQL Server中實現複雜模式的建議類型
域實體是層次:數據結構是一棵樹;它嵌套到很多層次。樹中的幾個節點是可重複的(多值)。例如,實體可以具有無限地址(家庭,帳單,運輸,辦公室等)
域實體可擴展:該模式將來可能會擴展(而不是收縮)。
將這樣的模式直接設計爲相關的SQL Server表格相當具有挑戰性。如果沒有設計,quering肯定會如此。
我正在考慮使用XML類型來存儲域實體記錄。然而,我有以下查詢:
- 由於特殊的報告需求,每個字段應該是可查詢的(在實體記錄之內和之間)。這適用於即將添加到模式中的字段。
- 在使用XML類型時,由於我失去了結構,什麼是我可以設計的最佳數據訪問層?
- 在這種情況下,我可以有效地使用實體框架嗎?
- 建議的任何最佳實踐?
+1。關係數據庫可以建立分層模型。這就是1-N關係的目的。大多數現實世界模型*是分層的,然而在關係數據庫中。 – 2011-03-04 06:15:45
感謝TomTom。既然你強烈反對,我想你很清楚這是一種錯誤的做法。再次感謝。我已經充分考慮了常規使用SQL Server的問題,這些都是我偶然發現的障礙。 1)使用表關係來實現層次結構將會有巨大的性能損失。 2)我無法想出一個優雅的方式來實現所需的模式可擴展性。接下來,我遇到了http://www.sisodb.com/,它採用了模型優先的方法來設計實體,但我不相信將它用於我的製作。 – Kabeer 2011-03-04 06:23:09
那麼,1和2是所有數據庫的問題。它變得複雜(所以是什麼;) - 這是工作的一部分),層次結構可以以某種方式被處理,但在所有語言中它們都是一個不好的問題。在具有良好性能方面不會因xml而變得更容易。 – TomTom 2011-03-04 06:48:51