簡體   English   中英

MySQL購物車結構

[英]MySQL Shopping Cart Structure

我正在尋找一個能夠處理多個類別的MySQL商店。 我把所有的類別設施都整理好了,但是我沒有得到任何幫助。

每個項目都可以有多個選項,例如T恤應具有“顏色”和“尺寸”選項。 然后,我需要從母產品創建許多變體/派生產品,以指定特大藍色T恤有20個庫存(例如)。 問題是,不僅僅是出售衣服,還可能有很多東西。 因此,我還需要這種模式才能處理無數種變體,例如帶有“ 跑車 ”設計的“ 6毫米 ”,“ 大型 ”生日賀卡。 6mm,大號,“ Ace”為變量。 這樣,我就能確保我們沒有任何庫存控制問題。 如果對您有用,以下是我當前的網站結構。

現有的數據庫架構http://www.hallwaystudios.com/screenshots/uploads/g5B7SNKU.png

希望您理解我的意思,並且有人可以解決我的問題! 預先(以及課程結束后)非常感謝

不太確定問題出在哪里...我可能會創建四個表:

-- a table of item types (t-shirt, birthday card, etc.)
CREATE TABLE ItemTypes (
  TypeID      INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  TypeName    VARCHAR(20) NOT NULL
);

-- a table of associated properties
CREATE TABLE TypeProperties (
  PropertyID  INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  TypeID      INT NOT NULL,
  PropName    VARCHAR(20) NOT NULL,
  INDEX(Property, TypeID),
  FOREIGN KEY(TypeID) REFERENCES ItemTypes(TypeID)
);

-- a table of specific items (XL Blue t-shirt, large bday card w/sports car, etc.)
CREATE TABLE Items (
  ItemID      INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  TypeID      INT NOT NULL,
  ItemName    VARCHAR(100) NOT NULL,
  ItemPrice   DECIMAL UNSIGNED NOT NULL,
  ItemStock   INT UNSIGNED NOT NULL,
  INDEX(ItemID, TypeID),
  FOREIGN KEY(TypeID) REFERENCES ItemTypes(TypeID)
);

-- the dictionary of property values
CREATE TABLE ItemProperties (
  ItemID      INT NOT NULL,
  TypeID      INT NOT NULL,
  PropertyID  INT NOT NULL,
  Value       VARCHAR(20) NOT NULL,
  PRIMARY KEY(ItemID, Property),
  INDEX(ItemID,     TypeID),
  INDEX(PropertyID, TypeID),
  FOREIGN KEY(            TypeID) REFERENCES ItemTypes     (            TypeID),
  FOREIGN KEY(ItemID,     TypeID) REFERENCES Items         (ItemID,     TypeID),
  FOREIGN KEY(PropertyID, TypeID) REFERENCES TypeProperties(PropertyID, TypeID)
);

它應該很明顯,但是為了以防萬一,示例數據看起來像這樣:

INSERT INTO ItemTypes (TypeID, TypeName) VALUES
  (1, 'T-Shirt'      ),
  (2, 'Birthday Card'),
  (3, 'Balloon'      );

INSERT INTO TypeProperties(PropertyID, TypeID, PropName) VALUES
  (51, 1, 'Colour' ), (52, 1, 'Size'),
  (53, 2, 'Size/mm'), (54, 2, 'Size'), (55, 2, 'Design'),
  (56, 3, 'Colour' );

INSERT INTO Items (ItemID, TypeID, ItemName, ItemPrice, ItemStock) VALUES
  (101, 1, 'Extra Large Blue T-Shirt',                       10.99, 20),
  (102, 2, '6mm Large Birthday Card with Sports Car Design',  2.99, 17),
  (103, 1, 'Extra Large Black T-Shirt',                      10.99,  5),
  (104, 3, 'Pink balloon',                                    0.10, 60);

INSERT INTO ItemProperties (ItemID, TypeID, PropertyID, Value) VALUES
  (101, 1, 51, 'Blue'       ),
  (101, 1, 52, 'Extra Large'),
  (102, 2, 53, '6'          ),
  (102, 2, 54, 'Large'      ),
  (102, 2, 55, 'Sports Car' ),
  (103, 1, 51, 'Black'      ),
  (103, 1, 52, 'Extra Large'),
  (104, 3, 56, 'Pink'       );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM