我理解EAV中的三个基本故障,即重新组装数据需要大量的工作。但是,我想要一个数据库,我可以添加自定义字段。很多人说Virtuemart允许自定义字段,但不使用EAV数据库结构。有人能解释一下如何做到这一点或提供链接吗?
发布于 2010-01-05 05:16:44
我相信他们以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自定义用户字段)。
https://stackoverflow.com/questions/2001939
复制相似问题