我正在使用 Magento 进行一些自定义工作,它具有基于 EAV 模型的数据库设计,并且我需要一些很好的资源/教程来解释 EAV 数据库模型。请不要将维基百科作为资源提供......我正在寻找以友好方式为初学者教授 EAV 的东西。
7 回答
您可以对初学者做的最友好的事情就是教他们 EAV 的缺点。
EAV 的好处是如此诱人,以至于很多新手会在他们意识到之前为自己挖一个非常大的洞。
希望谷歌搜索将揭示至少一些不利的一面。
简而言之,EAV 被优化用于获取数据,而不是获取数据。但这可能是一个可以接受的权衡。我管理了一个必须开发通用临床试验数据管理系统的项目。不可能有很多共同的数据元素,因为每个试验都需要收集不同的数据。捕获数据是当务之急;我们不得不在压力下开发数据输入页面。EAV 的报告更难,但它们也不那么紧急,并且通过一些聪明的想法,它们可以简化一点。EAV 为我们提供了很好的服务。
我发现本指南对 Magento 最有帮助:http: //alanstorm.com/magento_advanced_orm_entity_attribute_value_part_1
我发现这篇文章真的很有帮助,它提供了与 EAV 架构相关的注意事项和后果,并为它在 SQL Server 中的实现提供了一个基本框架。
您应该查看这篇文章:数据表示的 EAV/CR 模型。
它描述了带有类和关系的 EAV,一种更面向对象的方法,而不仅仅是简单的引用键值实现。
参见 Dinua V 和 Nadkarnia P. 生物医学数据库实体-属性-值建模的有效使用指南。国际医学杂志通知。2007 年;76:769-779。 http://www.pubmedcentral.nih.gov/articlerender.fcgi?artid=2110957