我有這些表的數據庫:數據庫設計:許多到許多問題
產品,顏色,大小
每個產品(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