2012-09-01 20 views
0

我正在尋找關於如何爲拍賣方設置我的數據庫的指南。如何在網上商店中爲變體管理構建數據庫

我的問題是,有很多不同的產品類型 - 比如說繪畫,衣服,電腦等等。它們有不同的規格,應該可以在拍賣時設置尺寸爲L的產品A - 或者產品B的全部庫存,例如

我應該如何建立我的數據庫以獲得最佳性能和編碼 - 在這種情況下?

回答

0

我建議以下數據庫/對象結構:

[Auction] n..1 [Category] 1..n [Variation Attribute] 1..n [Attribute Value] 

拍賣,然後有一個類別,並指變化的幾個屬性值的屬性,以及:

[Auction] = [Category], [Name], [Description] 
[Auction_AttrVal] = [AuctionID], [VarAttrID], [AttrValID] 

首先,你可以有一些類別表,其中包含「繪畫」,「衣服」,「電腦」等項目。拍賣/產品被分配到一個類別。

然後,每個類別定義此特定類別的變體屬性。一個例子是「大小」的類別「衣服」或「CPU」類別「計算機」。您還可以爲變體屬性添加預定義的值,以限制變體的數量並避免像「3GhZ」和「3 GhZ」之類的差異。

該機制還允許輕鬆過濾搜索結果。您可以選擇一個類別,只需將所有變體屬性加載爲過濾器(或者向屬性添加一個標記來聲明它),並將過濾值提供給最終用戶。

此外,您可以爲某個類別創建變體屬性,以強制創建拍賣的用戶(我假設它是消費者對消費者)爲其拍賣提供足夠的信息。

該代碼可能會相當通用和簡單。數據庫結構非常靈活和可擴展。性能要比一張桌子上的所有表現都好。您可能應該爲Auction_AttrVal表創建索引(對於字段AuctionID)。請讓我知道,如果數據庫結構不正確解釋。

+0

我有這個問題,在「類別」下可以同時存在例如T恤和牛仔褲,應該有不同的尺寸。也許這可以通過兒童類別來解決,但是不可能爲每個產品做出差異化變化,但仍然以某種方式與另一個產品「連接」,以製作一個修剪好的方式(你的「3GhZ」vs 「3 GhZ」正是我會避免的事情) – denlau

+0

您可以製作父類別。您將拍賣分配到最低類別級別(例如,如果您將「衣服」指定爲父級,將「牛仔褲」指定爲指定給「牛仔褲」的子類別,這意味着指定爲「衣服」)。每個級別可以定義不同的變化屬性。在創建拍賣時,只需向上移動層次結構並添加所有屬性即可。這也可以讓你通過給它同名的方式來覆蓋父類的屬性,然後在層次結構的檢查中檢查是否已經提到屬性。只需將一個ParentCategoryID(可以爲null)添加到Category表中即可。 –

+0

更具體地說,重要的是:假設衣服定義了尺寸(XXL,XL,L,M,S,XS)。然而,牛仔褲在32/32,34/32,...中定義了具有值(XXL,XL,...)的「衣服」的變化屬性「尺寸」,以及具有不同值的牛仔褲(32/32,。 ..)。在爲用戶定義選項時,首先找到「牛仔褲」的「尺寸」並將其添加爲參數。然後,當你再次遇到「大小」「衣服」時,你可以忽略它。 –