【发布时间】:2012-10-13 04:41:06
【问题描述】:
我需要在预订软件中实现自定义字段。我需要扩展一些表,例如,包含具有动态属性的用户组。
还有一个产品表,其中每个产品都可以有自定义字段(理想情况下,这些字段可以嵌套)。
我已经对 EAV 进行了一些搜索,但我读到了很多负面的 cmets,所以我想知道该使用哪种设计来处理这类事情。
我了解使用 EAV 会导致许多连接对产品页面进行排序,但我不想在每次创建属性时更改组/产品表。
注意:我使用 Innodb
【问题讨论】:
-
AFAIK,没有灵丹妙药。这都是关于权衡的。关键问题是您将如何处理这些数据。 “无限灵活”的数据需要同样无限灵活的 UI 和大量用例。我会从用例开始,然后在固定模式中尽可能多地实现,添加尽可能少的 EAV 扩展,并权衡例如 XML 字段。
-
另外,根据经验,可以使用数据库元数据生成许多与 EAV 相关的查询。将其添加到等式中。
-
谢谢。是的,应该可以搜索具有给定属性的产品,它在创建“动态表”时增加了一些复杂性