【发布时间】:2022-01-25 06:35:28
【问题描述】:
我们正在为电子商务应用程序和网站设计数据库。我们遇到了一个障碍,使我们在搜索和试验中倒退了,但没有一个解决方案奏效,因为数据中存在冗余。
我们做了一些我们拒绝的设计。我不会展示所有的设计,但我会在这里展示其中的一些,以及我们即将实施的最后一个设计。
- 这是我们拒绝的第一个设计,因为它过度规范化并且过于复杂。
- 第二个设计是一样的。
- 这是我们尝试的最后一个设计,但过于简化,冗余会很多。
之后,我们尝试搜索并寻找一种设计,该设计将适用于我们之前的设计并适合其他桌子。我们在这里找到了一个,我们对设计进行了一些修改,但它也不适合我们,因为 color_id 和 size_id 会发生冗余,而且它不是外键。
我们要设计接受这些情况的表格:
-
我的产品有不同的颜色和不同的尺寸,而且尺寸不取决于颜色,反之亦然,而且它们的价格都相同。
-
我有一个产品,它有不同的颜色和尺寸,但尺寸取决于颜色,例如(颜色:红色)有(尺寸:S、M、L)和(颜色:黑色)有(尺寸:M, L) 他们有不同的价格。
-
我有一个产品,它有不同的尺寸,价格变化取决于尺寸,例如产品表(尺寸:S)和(价格:50 美元),但(尺寸:L)有(价格:100美元)。但它没有颜色变体。
产品不会由我们插入,而是由一些卖家插入。颜色和尺寸将是下拉菜单中的所有选项。尺寸将仅根据类别显示。例如,Category Tops 将只有 (S,M,L,...) 而没有其他尺寸
【问题讨论】:
-
(Database Design - products attributes): What is better option for product attribute database design?。请在考虑发布之前阅读手册和谷歌任何错误消息和许多清晰、简洁和准确的问题/问题/目标的措辞,带有和不带有您的特定名称/字符串/数字、“site:stackoverflow.com”和标签;阅读许多答案。反映您的研究。
标签: mysql database-design relational-database entity-attribute-value