2009-09-08 59 views
2

我正在購物車上工作,我的問題是,我應該如何設計產品尺寸選擇數據庫? T恤可以是「XL,L,M,S」等,鞋子可以是「36,37,38,39 ... blabla」我應該只爲一種尺寸的桌子或多種類型的桌子(T恤,鞋子等) )?購物車結構問題,尺寸選擇等

在此先感謝...

回答

7
Table: size_selection 

Item_id numeric 
Item_size varchar 
Seq numeric 

ITEM_ID - >項目表(說的id = 1 - > T恤ID = 2 - >鞋)

所以,你的表是

Item_ID Item_size Seq 
__________________________ 
    1   S   1 
    1   M   2 
    1   L   3 
    1   XL  4 
    2   36  1 
    2   37  2 
    2   38  3 
    2   39  4 

然後,在網頁上,只是讓你下拉值

Select item_size from size_selection 
where item_id = :p_ID 
order by seq 

續集語法可能因您的口味而異。

+0

Upvoted爲可行的答案。幹得好,@TomatoSandwich,但我有兩個不同的表格,shirtSize和pantSize。只是我的0.02美元。當嘗試製作「Size」類或枚舉並將其用作襯衫類,Pant類或Garment類的屬性時,尤其如此。 – Rap 2009-09-08 03:16:42

+0

不知道爲什麼你想分開襯衫和褲子,還有鞋子,帽子等(可能)。我的解決方案只是一個通用的商品代碼值表,並將FK轉換爲商品類型表。 2張桌子,無限項目類型。 – glasnt 2009-09-08 03:22:12

+0

這很好地回答了他陳述的問題。我只是想補充一點,如果您需要對某個項目進行兩次或多次下拉操作(例如選擇大小和顏色),則可以稍微擴展/概括一下,調用表item_options並添加一個屬性字段。所以你有item_id,屬性(顏色,大小等),價值(大,粉紅色等),seq – JasonWoof 2009-09-08 03:29:30

1

我不是很清楚你的理由是想要多個表。也許你已經掛上了一些事實,即一些尺寸是alpha,一些是數字。

如果多數民衆贊成的原因,然後直接忘記它。對於像這樣的不同變體,沒有任何有用的數字含義,所以它們應該全部作爲varchar存儲以支持字母數字字符。

如果你需要排序,然後把sortorder也。這應該是分開的。不要嘗試對項目大小本身進行排序 - 就您的應用而言,它們都只是個人選擇,並不重要,它們是數字。