2017-10-18 119 views
1

我有一個項目,我正在創建分類項目的網站。網站上的用戶將添加項目出售並給出相關規範。MySQL數據庫:如何存儲不同大小的產品?

但問題是:在這個網站上,單個產品可以被視爲不同的產品。例如,我可以賣T恤兩種尺寸:

  • 尺碼:S
  • 滑雪(尺寸:150cm,所以一個二進制值)

什麼是設計表的最佳途徑保持這些屬性和產品的有效性?

回答

1

你應該有一個產品的基本表,然後你應該有基本的細節,如產品的名稱和相同的東西是相同的,例如,類型,它是一件襯衫等。你應該有一個屬性表具有產品ID和屬性。您必須使用該產品ID進行參考。

事情是這樣的:

在MySQL中相同的SQL如下:

CREATE TABLE `Products` (
    `Product_ID` bigint NOT NULL AUTO_INCREMENT, 
    `Product_Name` varchar NOT NULL, 
    `Product_Type` varchar NOT NULL, 
    `TimeStamp` TIMESTAMP NOT NULL, 
    PRIMARY KEY (`Product_ID`) 
); 

CREATE TABLE `Product_Attributes` (
    `Product_SKU` bigint NOT NULL AUTO_INCREMENT, 
    `Product_ID` bigint NOT NULL, 
    `Product_Size` bigint NOT NULL, 
    `Product_Price` bigint NOT NULL, 
    PRIMARY KEY (`Product_SKU`) 
); 

ALTER TABLE `Product_Attributes` ADD CONSTRAINT `Product_Attributes_FK` 
FOREIGN KEY (`Product_ID`) 
REFERENCES `Products`(`Product_ID`); 

這裏Product_SKU是庫存單位,這是真正的產品ID爲每件產品 - 尺碼爲S的T恤和尺寸爲150釐米的T恤。而Product_ID是產品的父母ID - T恤。

產品

  • T恤 - PROD ID - 1
  • 牛仔褲 - PROD ID - 2

產品SKU人們可以購買這些

  • T恤(尺碼S) - SKU - 1可以考慮像2.1
  • T恤(尺碼150釐米) - SKU - 2可以考慮像2.2

希望這個聲音很清楚。

+0

我不明白 – Strawberry

+0

@Strawberry哪部分你不明白? – Soolie

+0

關於如何解決問題的部分 – Strawberry

0

你的意思是事實/維度還是數據類型?

您可以輕鬆地將不同的大小存儲爲varchar。但我建議你有一個事實/維度結構,可以將所有細節(如大小等)存儲在單獨的表中,以供參考。

相關問題