我有一个包含这些表的数据库:
的产品,颜色,大小
每件产品(T恤,牛仔裤等)都可以有多种颜色,每种颜色可以有多种尺寸
修改的
产品可以共享颜色和颜色可以共享大小
所以我制作了一个xref_products_colors表和xref_color_sizes表。可以,还是有更好的方法来设计这个数据库?
答案 0 :(得分:1)
不是每条牛仔裤都有不同颜色的自己的产品吗?产品在尺寸和颜色的集合中是“独一无二的”。
我会做这样的事情:
Collection
或Brand
甚至可能同时拥有Collection
聚合品牌的位置。
然后我会在products
Id
,Size
,Color
,Collection
但是,在这种情况下,您会看到大小,颜色的多行,因此您甚至可以将不同的颜色视为不同的Collection
,而Collection
表可能如下所示:
Id
,Brand
,Color
然后您将具有特定尺寸的Products
附加到Collection
,如下所示:
Id
,Collection
,Size
让它更加规范化。
答案 1 :(得分:0)
首先,将N对N关系建模为单独的链接表是可以的。
然而,在您的特定型号中,奇怪的是,尺寸与颜色相关联。这似乎是错误的,因为颜色本身与尺寸无关。
我个人可能会将颜色和大小都放在同一个表中,以表示只有这两个属性的特定组合,然后将此表链接到products表。
答案 2 :(得分:0)
根据它的外观,你需要采用Niedermair先生的建议,或者有三个表,PRODUCT带有product_id键,COLORS带有product_id和colour_id键,SIZES带有product_id,colour_id和size_id键。
虽然它看起来并不是真正的N-to-N关系,因为想要红色衬衫的人不太可能对红色汽车感兴趣。
编辑 - 我提到的答案刚刚消失。在其中,响应者建议使用表格PRODUCT键入产品,颜色和尺寸。
答案 3 :(得分:0)