你們好,以前咱們設計了購物商城的商品表結構(原文連接),如今咱們來具體實現表的DDL。git
新建一個數據庫,名字叫mall
,基字符集:utf-8
,:數據庫排序規則:utf-8_general_ci
sql
對於商品模塊,統一使用goods_
作前綴。數據庫
首先是兩個比較簡單的表:分類表和品牌表.net
CREATE TABLE `goods_category` ( `id` bigint(20) unsigned NOT NULL auto_increment, `category_name` varchar(50) NOT NULL COMMENT '分類名稱', `gmt_create` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, `gmt_update` timestamp NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='分類表';
CREATE TABLE `goods_brand` ( `id` bigint(20) unsigned NOT NULL auto_increment, `brand_name` varchar(50) NOT NULL COMMENT '品牌名稱', `gmt_create` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, `gmt_update` timestamp NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='品牌表';
接下來是SPU表:設計
CREATE TABLE `goods_spu` ( `id` bigint(20) unsigned NOT NULL auto_increment, `spu_no` varchar(50) NOT NULL COMMENT '商品編號,惟一', `goods_name` varchar(50) NOT NULL COMMENT '商品名稱', `low_price` decimal(9,2) NOT NULL COMMENT '最低售價', `category_id` bigint(20) NOT NULL COMMENT '分類id', `brand_id` bigint(20) NOT NULL COMMENT '品牌id', `gmt_create` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, `gmt_update` timestamp NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY (`id`), UNIQUE KEY `uk_spu_no` (`spu_no`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='spu表';
而後是SPU規格相關的表:code
CREATE TABLE `goods_spec` ( `id` bigint(20) unsigned NOT NULL auto_increment, `spec_no` varchar(50) NOT NULL COMMENT '規格編號', `spec_name` varchar(50) NOT NULL COMMENT '規格名稱', `gmt_create` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, `gmt_update` timestamp NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='規格表';
CREATE TABLE `goods_spec_value` ( `id` bigint(20) unsigned NOT NULL auto_increment, `spec_id` bigint(20) NOT NULL COMMENT '規格id', `spec_value` varchar(50) NOT NULL COMMENT '規格值', `gmt_create` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, `gmt_update` timestamp NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='規格值表';
CREATE TABLE `goods_spu_spec` ( `id` bigint(20) unsigned NOT NULL auto_increment, `spu_id` bigint(20) NOT NULL COMMENT 'spu_id', `spec_id` bigint(20) NOT NULL COMMENT 'spec_id', `gmt_create` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, `gmt_update` timestamp NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='spu規格表';
接下來是SKU相關的表:blog
CREATE TABLE `goods_sku` ( `id` bigint(20) unsigned NOT NULL auto_increment, `sku_no` varchar(50) NOT NULL COMMENT 'sku編號,惟一', `sku_name` varchar(50) NOT NULL COMMENT 'sku名稱(冗餘spu_name)', `price` decimal(9,2) NOT NULL COMMENT '售價', `stock` int(11) NOT NULL COMMENT '庫存', `shop_id` bigint(20) NOT NULL COMMENT '商鋪id,爲0表示自營', `spu_id` bigint(20) NOT NULL COMMENT 'spu_id', `gmt_create` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, `gmt_update` timestamp NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='sku表';
CREATE TABLE `shop_info` ( `id` bigint(20) unsigned NOT NULL auto_increment, `shop_name` varchar(50) NOT NULL COMMENT '店鋪名稱', `gmt_create` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, `gmt_update` timestamp NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='店鋪表';
CREATE TABLE `goods_safeguard` ( `id` bigint(20) unsigned NOT NULL auto_increment, `safeguard_name` varchar(50) NOT NULL COMMENT '保障名稱', `price` decimal(9,2) NOT NULL COMMENT '保障價格', `gmt_create` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, `gmt_update` timestamp NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='增值保障';
CREATE TABLE `goods_sku_safeguard` ( `id` bigint(20) unsigned NOT NULL auto_increment, `sku_id` bigint(20) NOT NULL COMMENT 'sku_id', `safeguard_id` bigint(20) NOT NULL COMMENT 'safeguard_id', `gmt_create` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, `gmt_update` timestamp NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='sku增值保障';
CREATE TABLE `goods_sku_spec_value` ( `id` bigint(20) unsigned NOT NULL auto_increment, `spu_id` bigint(20) NOT NULL COMMENT 'sku_id', `spec_value_id` bigint(20) NOT NULL COMMENT '規格值id', `gmt_create` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, `gmt_update` timestamp NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='sku規格值';