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

时间:2010-01-04 20:18:27

标签: sql entity-attribute-value virtuemart

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

1 个答案:

答案 0 :(得分: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自定义   用户字段)。