2009-08-26 65 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上找到更多博客/视频。