理解EAV数据库模型的最佳初学者资源是什么?

14

我正在使用Magento进行一些自定义工作,它的数据库设计基于EAV模型,我需要一些好的资源/教程来解释EAV数据库模型。请不要提供维基百科作为资源……我正在寻找一些友好地针对初学者讲解EAV的内容。


1
那么,你发现了哪些资源不好用,这样我们就不会重复你的研究了——假设你进行了一些研究... - Steven A. Lowe
7个回答

15

1
这个恐怖故事和问题有任何关联吗? - Steven A. Lowe
2
因为它描述了一个基于EAV的系统的实际实现,从那里的某个人的角度来看,以及这种设计选择的完全可预测的后果。 - David Aldridge
2
这与原始问题相关。使用Magento的答案是乔的白板信息,“像疯子一样跑!” - Bill Karwin
3
EAV模型是一个很棘手的问题。在小范围且限定明确的数据库中,它可能运作良好,但越接近实际生产系统就会出现问题。可以将其用作原型设计工具来迭代数据库设计,但不要考虑真正构建系统。 "Bad Carma" 与我的经历非常相似,让我感到毛骨悚然。关于EAV,我的看法可以在这里找到:http://www.simple-talk.com/community/blogs/philfactor/archive/2008/05/29/56525.aspx - Phil Factor

8

对于初学者最有帮助的事情是教他们EAV的缺点。

EAV的好处非常诱人,以至于很多新手在意识到之前会为自己挖一个非常大的坑。

希望Google搜素至少能揭示一些缺点。


7
简而言之,EAV 优化了数据的录入,而非数据的输出。但这可能是可接受的权衡。我曾经负责过一个项目,需要开发一个通用的临床试验数据管理系统。由于每个试验需要收集不同的数据,因此不能有太多共同的数据元素。捕获数据很紧急,我们不得不在压力下开发数据输入页面。使用 EAV 进行报告会更加困难,但它们也不是那么紧急,通过一些巧妙的思考,可以将其简化一些。EAV 在这方面为我们提供了良好的服务。

好的观点。换句话说,你可以在不进行数据分析的情况下输入数据。但是,当你想要获取数据时,除非你满意于无意义的结果,否则你必须对数据进行分析。 - Walter Mitty

2

2

1
你应该查看这篇文章:数据表示的EAV/CR模型
它描述了EAV与类和关系,这是一种更面向对象的方法,而不仅仅是一个简单的引用-键-值实现。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接