2009-08-26 66 views
7

我有興趣通過SQL Server數據庫玩EAV模型。任何人都可以將我指向現有模型/模式的文章或框架(我對此並不感興趣)?通過SQL Server的EAV

+2

不明;你是否想要一篇論文解釋爲什麼在SQL中這是一個糟糕的主意,或者是一個示例模式可供玩耍? – 2009-08-26 18:11:25

+0

嗯,也許我沒有把它說錯,但我認爲我cleary說:「文章或框架爲一個現有的模型/架構」,而不是一個模式玩 – 2009-08-26 20:03:25

+0

@Jaimal - 「我很有趣*玩* EAV模型「? – 2009-08-26 20:14:28

回答

2

爲什麼不創建一個非常簡單的表與實體列,屬性列,和值列:

CREATE TABLE eav(
    entity STRING, 
    attribute STRING, 
    value STRING); 

,然後使用某種類型的腳本生成一些測試數據填充表。

INSERT INTO eav ('banana','color','yellow'); 
INSERT INTO eav ('banana','fluffy','no'); 
INSERT INTO eav ('banana','origin','Guatemala'); 
INSERT INTO eav ('orange','origin','USA'); 
INSERT INTO eav ('orange','origin','Mexico'); 
INSERT INTO eav ('pear','origin','USA'); 
INSERT INTO eav ('peach','fluffy','yes'); 

然後嘗試在其上運行的查詢,玩一圈,瞭解它是如何工作的,等

雖然在一般,上面的數據組織模式並沒有真正與關係型數據庫理論網好。上面的文檔更像文檔數據庫理論,如Couch DB。如果您需要在野外存儲/管理EAV自然數據,我會更加註意這一點。

+0

如果您有權訪問Siebel系統,則LOV系統的工作方式完全相同。 – 2009-08-26 18:00:36

+0

這樣做很簡單,但大約2秒鐘後,我會問一堆問題,因此我真的在尋找一個現有的文章或框架來解決這些問題。 – 2009-08-26 18:02:19

+0

@ Jaimal - 什麼樣的問題?你的問題表明,你想要一個示例模式來玩。 – 2009-08-26 18:08:39

5

我還沒有使用它,但在這個CodePlex項目有數據爲例EAV結構:

http://eav.codeplex.com/
「爲SQL Server與樣本EAV模式:表和索引,部分參照完整性,偏數據類型,可更新視圖(像普通SQL表)「

提供一些SQL腳本下載,here

此外,這篇博客文章: 「Dave的指導,以EAV」
http://weblogs.sqlteam.com/davidm/articles/12117.aspx

...通過EAV示例工作在SQL Server中對如何進行類型檢查和查詢將實施的例子,有很多關於理論的討論以及爲什麼EAV會導致問題。

-1

我們在Github上有一個非常先進,成熟的EAV解決方案 - https://github.com/2sic/eav。儘管安裝起來相當困難,因爲它主要用作稱爲2sxc的內容管理系統(也在github上)的後端。

因爲它非常先進,支持許多數據類型,輸入類型,通用輸入掩碼等,我相信你會發現它非常鼓舞人心。要試用它,最好的方法是安裝DNN(.net Web平臺)和2sxc(DNN的內容管理系統)。我想你會驚訝於可能的事情。

請注意,整個UI是基於AngularjS的,所以它是一個非常現代的設置。您還可以在http://2sxc.org上找到更多博客/視頻。