Virtuemart如何在不使用EAV的情况下进行EAV?

Zac*_*ott 4 sql virtuemart entity-attribute-value

我理解EAV中的三个基本故障,即重新组装数据需要做大量的工作.但是,我想要一个可以添加自定义字段的数据库.很多人说Virtuemart允许自定义字段但不使用EAV数据库结构.有人可以解释如何做到这一点或提供链接?

Bil*_*win 9

我相信他们将自定义字段存储在一大块XML或YAML或其他特定于域的语言中.

基本上,他们使用Martin Fowler的Serialized LOB模式.

这使得很难使用SQL表达式来查询自定义属性.您必须将整行提取回应用程序并解析出自定义属性.但这并不比EAV引起的痛苦更严重.

http://web.archive.org/web/20110709125812/http://sankuru.biz/en/blog/8-joomla-configuration-issues/35-the-cck-buzz-content-creation-kit-and -the-EAV-problem.html

Virtuemart和CCK

Virtuemart(VM)自定义用户字段是CCK风格的,但不依赖于EAV.因此,它们非常有用,也很有用.我推荐他们使用.

VM产品类型也是CCK风格,但不幸的是确实依赖于EAV.因此,我避免像瘟疫这样的VM产品类型.相反,我只是在产品记录中手动创建其他字段.

VM属性系统(简单,自定义,高级)实际上太不足以被视为CCK等级.

对VM的一个很好的改进包括将VM产品类型和属性重新描述为非EAV CCK样式的自定义字段(因此使它们更像VM自定义用户字段).