我有这些表的数据库:数据库设计:许多到许多问题
产品,颜色,大小
每个产品(T恤,牛仔裤等),可以有多种颜色和每个颜色可以有多种尺寸
编辑
产品可以共享颜色和颜色可以共享大小
所以我制作了一个xref_products_colors表和xref_color_sizes表。没关系,还是有更好的方法来设计这个数据库?
我有这些表的数据库:数据库设计:许多到许多问题
产品,颜色,大小
每个产品(T恤,牛仔裤等),可以有多种颜色和每个颜色可以有多种尺寸
编辑
产品可以共享颜色和颜色可以共享大小
所以我制作了一个xref_products_colors表和xref_color_sizes表。没关系,还是有更好的方法来设计这个数据库?
首先,将N对N关系建模为单独的链接表是很好的。
然而,在特定的模型中,让我觉得奇怪的是,尺寸与颜色有关。这似乎是错误的,因为颜色本质上与尺寸无关。
我个人可能会将颜色和大小都放在同一个表中,以表示这两个属性只有特定的组合,然后将此表链接到产品表。
是不是每条牛仔裤都有不同颜色的自己的产品?一种产品在其尺寸和颜色的集合中是“独特的”。
我会做这样的事情:
Collection
或Brand
甚至可能有两种情况:一Collection
聚集的一个品牌。
然后我会在这个布局中products
Id
,Size
,Color
,Collection
但是,你会看到大小的多张线,颜色在这种情况下,所以你甚至可以看到不同的颜色作为一个不同的Collection
而Collection
表看起来是这样的:
Id
,Brand
,Color
然后你附加Products
具有特定大小的Collection
这样的:
Id
,Collection
,Size
让它多一点归。
通过它的外观,您需要采用Mr Niedermair的建议或具有三个表,带有product_id键的PRODUCT,带有product_id和colour_id键的COLORS,以及带有product_id,colour_id和size_id键的SIZES。
尽管它看起来并不是真正的N对N关系,因为想要红色衬衫的人不太可能对红色汽车感兴趣。
编辑 - 我提到的答案刚刚消失。其中,响应者建议在产品,颜色和尺寸上键入表格PRODUCT。
编辑中的最后一位;在product_id,colour_id和size_id上键入一张表。如果没有与红色帽子相关的特殊属性,而不是蓝色帽子,这是有道理的。 – 2010-07-15 09:32:31
需要修改答案。附加的图像被破坏。 – stwhite 2016-05-15 14:50:32