电子商务产品数据库设计:下拉属性+自定义属性(如自定义文本)

2izufjch  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(404)

所以我想为电子商务解决方案的产品模块设计表和关系。为了澄清起见,我将使用一个高度可定制产品的例子,该产品将具有:
几个“经典”属性,如颜色或大小(通过普通下拉菜单选择,有几个选项,例如红色、蓝色或黑色表示颜色,或小、中、大表示大小)。
但除此之外,用户还可以自由更改和定义一些自定义属性(基本上是文本字段或数字字段,当然是通过文本或数字输入字段选择的)。
价格将取决于每个属性(dropdown+custom),所以我必须在适当的时候在客户端和服务器端编写额外的逻辑。
到目前为止,我的尝试与这个问题给出的解决方案是一致的。它适用于“普通”属性(下拉属性),但不能很好地扩展到自定义文本或数字字段,因为在我的场景中 variant_value 这张table根本没有任何意义。
有什么想法吗?提前谢谢。

rnmwe5a2

rnmwe5a21#

了解eav模式(我添加了一个标记)。
实施它。
然后回来抱怨它所有的问题。
特别是,上述问题中批准的答案建议规范化变量值。这是一种使eav更糟的方法。还有一些不必要的答案 AUTO_INCREMENT 表上的ID具有非常好的“自然” 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

相关问题