4

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

4

1 回答 1

9

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

基本上,他们使用 Martin Fowler 的序列化 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 自定义用户字段)。

于 2010-01-04T21:16:43.767 回答