首页 > 解决方案 > 电商产品数据库设计:下拉属性+自定义属性(如自定义文本)

问题描述

所以我想为电子商务解决方案的产品模块设计表格关系。为澄清起见,我将使用一个高度可定制的产品示例,该产品将具有:

价格将取决于每个属性(下拉菜单 + 自定义),因此我必须在适当的时候在客户端和服务器端编写额外的逻辑。

到目前为止,我的尝试与问题中给出的解决方案相匹配。它适用于“普通”属性(下拉属性),但它不能很好地扩展到自定义文本或数字字段,因为在我的场景中,variant_value表格没有任何意义。

有任何想法吗?提前致谢。

标签: mysqldatabasedatabase-designrelational-databaseentity-attribute-value

解决方案


  1. 了解 EAV 模式模式(我添加了一个标签)。
  2. 实施它。
  3. 然后回来抱怨它的所有问题。

特别是,上述问题中批准的答案建议规范化variant_value。这是使 EAV 变得更糟的一种方法。答案也有一些不必要的AUTO_INCREMENTid 在具有非常好的 "natural" 的表上PRIMARY KEYs。这会减慢一些查询。

WordPress 实现 EAV。他们的“postmeta”表执行不力;以下是改进它的建议:http: //mysql.rjweb.org/doc.php/index_cookbook_mysql#speeding_up_wp_postmeta

这是我关于 EAV 的博客、它的一些问题和一些部分解决方案:http: //mysql.rjweb.org/doc.php/eav


推荐阅读