首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EAV over SQL Server

EAV over SQL Server
EN

Stack Overflow用户
提问于 2009-08-26 17:52:34
回答 4查看 11K关注 0票数 7

我对在SQL Server数据库上使用EAV模型很感兴趣。有没有人能为我指出一个现有模型/模式的文章或框架(我对Saas不感兴趣)?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-08-26 17:58:28

Best Practices for Semantic Data Modeling for Perfor...

众所周知,EAV存在问题,因为它会导致严重的部署性能和可伸缩性问题。该链接中的白皮书由SQL Server客户咨询团队发布,试图为部署成功的EAV模型提供一些指导。

票数 17
EN

Stack Overflow用户

发布于 2010-11-19 21:41:36

我没有用过它,但是在这个codeplex项目中有一个包含数据的示例EAV结构:

http://eav.codeplex.com/

SQL Server的示例EAV模式包括:表和索引、部分引用完整性、部分数据类型化、可更新视图(与普通SQL表一样)

提供了一些可以下载的SQL脚本,here

另外,这篇博客文章:“dave‘s guide to the eav”

http://weblogs.sqlteam.com/davidm/articles/12117.aspx

..。通过SQL Server中的EAV示例,演示了如何实现类型检查和查询,并对其理论以及EAV会导致问题的原因进行了大量讨论。

票数 5
EN

Stack Overflow用户

发布于 2009-08-26 17:59:35

为什么不创建一个包含实体列、属性列和值列的非常简单的表:

代码语言:javascript
复制
CREATE TABLE eav(
    entity STRING,
    attribute STRING,
    value STRING);

然后使用某种脚本填充表,以生成一些测试数据。

代码语言:javascript
复制
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数据,我会更深入地研究一下。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1336449

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档