代码之家  ›  专栏  ›  技术社区  ›  Zachary Scott

Virtuemart如何在不使用EAV的情况下实现EAV?

  •  4
  • Zachary Scott  · 技术社区  · 15 年前

    我理解EAV中的三个基本故障,即重新组装数据需要大量工作。但是,我需要一个可以添加自定义字段的数据库。很多人都这么说 Virtuemart

    1 回复  |  直到 15 年前
        1
  •  9
  •   Samuel Katz Jon Skeet    13 年前

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

    基本上,他们用的是马丁·福勒的 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风格, 因此,我避免使用VM产品类型 产品记录。

    VM属性系统(简单, 动力不足被视为CCK

    对VM的一个很好的改进,是吗 在于重新表述VM产品 非EAV的类型和属性 CCK样式自定义字段(因此 使它们工作起来更像VM自定义