2010-07-15 69 views
1

我有這些表的數據庫:數據庫設計:許多到許多問題

產品,顏色,大小

每個產品(T恤,牛仔褲等),可以有多種顏色和每個顏色可以有多種尺寸

編輯

產品可以共享顏色和顏色可以共享大小

所以我製作了一個xref_products_colors表和xref_color_sizes表。沒關係,還是有更好的方法來設計這個數據庫?

回答

0

希望這是不言自明的。

product_color_size

+0

需要修改答案。附加的圖像被破壞。 – stwhite 2016-05-15 14:50:32

0

首先,將N對N關係建模爲單獨的鏈接表是很好的。

然而,在特定的模型中,讓我覺得奇怪的是,尺寸與顏色有關。這似乎是錯誤的,因爲顏色本質上與尺寸無關。

我個人可能會將顏色和大小都放在同一個表中,以表示這兩個屬性只有特定的組合,然後將此錶鏈接到產品表。

+0

我想他明白,你可以使用參考表在許多一對多的關係,但問題在一般的設計佈局。你認爲你正在接受與具有尺寸的產品說話相同的東西。 – 2010-07-15 08:47:34

+0

我不認爲這很奇怪。例如,我們說,這件黑色T恤有S,M,L,這個白色只有XL – chchrist 2010-07-15 08:53:42

+1

可以,但是你說的是*產品和顏色;你不會說這樣的話,「白色是可用的XXL,紅色可用於所有尺寸。」 – stakx 2010-07-15 08:55:48

1

是不是每條牛仔褲都有不同顏色的自己的產品?一種產品在其尺寸和顏色的集合中是「獨特的」。

我會做這樣的事情:

CollectionBrand甚至可能有兩種情況:一Collection聚集的一個品牌。

然後我會在這個佈局中products

IdSizeColorCollection

但是,你會看到大小的多張線,顏色在這種情況下,所以你甚至可以看到不同的顏色作爲一個不同的CollectionCollection表看起來是這樣的:

IdBrandColor

然後你附加Products具有特定大小的Collection這樣的:

IdCollectionSize讓它多一點歸。

+0

它的x =它的x;它=它是=>它的集合。 – Konerak 2010-07-15 08:49:53

+0

* @ Konerak:*請你原諒? – stakx 2010-07-15 08:50:37

+0

@Konerak,謝謝! – 2010-07-15 09:48:15

0

通過它的外觀,您需要採用Mr Niedermair的建議或具有三個表,帶有product_id鍵的PRODUCT,帶有product_id和colour_id鍵的COLORS,以及帶有product_id,colour_id和size_id鍵的SIZES。

儘管它看起來並不是真正的N對N關係,因爲想要紅色襯衫的人不太可能對紅色汽車感興趣。

編輯 - 我提到的答案剛剛消失。其中,響應者建議在產品,顏色和尺寸上鍵入表格PRODUCT。

+0

編輯中的最後一位;在product_id,colour_id和size_id上​​鍵入一張表。如果沒有與紅色帽子相關的特殊屬性,而不是藍色帽子,這是有道理的。 – 2010-07-15 09:32:31