1. 程式人生 > >關於mysql資料庫建立商品及屬性相關表的思路

關於mysql資料庫建立商品及屬性相關表的思路

1.建立商品表:

CREATE TABLE `products` (
  `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, # 主鍵, 自增 ID
  `name` VARCHAR(50)  NOT NULL, # 商品名稱
  `price_min` DECIMAL(10,2) NOT NULL, # 商品最小价格
  `price_max` DECIMAL(10,2) NOT NULL ,# 商品最大價格
  `img_url` VARCHAR(255) NOT NULL ,#商品的主圖
  `category_id` INT(10) NOT NULL ,#商品所屬分類id
  `mall_id` INT(10) not null ,#商品所屬商家id
  PRIMARY KEY (`id`)
);

2.建立商品屬性鍵表:

CREATE TABLE `attr_keys` (
  `id` INT(10) UNSIGNED NOT NULL  AUTO_INCREMENT, #主鍵 自增 ID
  `name` VARCHAR(50) NOT NULL, #屬性的鍵 例如記憶體,顏色等
  PRIMARY KEY (`id`)
);

3.建立商品屬性值表:

CREATE TABLE  `attr_values`(
  `id` INT(10) UNSIGNED NOT NULL  AUTO_INCREMENT, #主鍵 自增 ID
  `name` VARCHAR(50) NOT NULL ,#對於屬性鍵的值 例如顏色對應的紅,綠,藍
  `attr_key_id` INT(10) NOT NULL, #對應屬性鍵表的id
  `product_id` INT(10) NOT NULL , #對應商品表的id
  PRIMARY KEY (`id`)
);

4.建立商品SKU表:

CREATE TABLE `pro_skus`(
  `id` INT(10) UNSIGNED NOT NULL  AUTO_INCREMENT, #主鍵 自增 ID
  `product_id` INT(10) NOT NULL ,#對應商品表的id
  `attr_value_path` VARCHAR(255) NOT NULL, #屬性值表組合屬性
  `price` DECIMAL(10,2) NOT NULL DEFAULT '0.00', #價格
  `freight` DECIMAL(10,2) NULL DEFAULT '0.00', #運費
  `stock` INT(10) UNSIGNED NOT NULL DEFAULT '0', #庫存數量
  PRIMARY KEY (`id`)

);

5.對錶之間進行關係分析:
‘products’ -> ‘attr_values’ 一對多
‘products’ -> ‘pro_skus’ 一對多
‘attr_keys’ -> ‘attr_values’ 一對多