1. 程式人生 > >商城資料表設計

商城資料表設計

1、根據上一篇的流程圖設計出所需的資料表:

商鋪表
分類表
地區表
商品表
商品詳情表
使用者表
訂單表
商品評論表
購物車表
收藏表
使用者收貨地址
第三方平臺與使用者繫結表
使用者資訊表
2、SQL程式碼
CREATE DATABASE xeshop DEFAULT CHARACTER SET utf8;

CREATE TABLE IF NOT EXISTS xe_shop
(
id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
shopname VARCHAR(30) NOT NULL DEFAULT "" COMMENT "商鋪名",
shopaddress VARCHAR(120) NOT NULL DEFAULT "" COMMENT "商鋪地址",
metroaddress VARCHAR(120) NOT NULL DEFAULT "" COMMENT "商鋪地鐵地址",
shoptel CHAR(12) NOT NULL COMMENT "商鋪電話",
shopcoord VARCHAR(60) NOT NULL DEFAULT "" COMMENT "商鋪座標"
)ENGINE=innodb DEFAULT CHARSET=utf8 COMMENT="商鋪表";

CREATE TABLE IF NOT EXISTS xe_category
(
id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
cname CHAR(20) NOT NULL DEFAULT "" COMMENT "分類名",
pid SMALLINT UNSIGNED NOT NULL DEFAULT 0 COMMENT "父分類的id",
keywords VARCHAR(120) NOT NULL DEFAULT "" COMMENT "分類關鍵字",
title VARCHAR(60) NOT NULL DEFAULT "" COMMENT "分類標題",
description VARCHAR(255) NOT NULL DEFAULT "" COMMENT "分類描述",
sort SMALLINT UNSIGNED NOT NULL COMMENT "排序",
display TINYINT UNSIGNED NOT NULL DEFAULT 1 COMMENT "是否顯示",
UNIQUE INDEX uniq_cname (cname),
UNIQUE INDEX uniq_pid (pid),
UNIQUE INDEX uniq_sort (sort),
UNIQUE INDEX uniq_display (display)
)ENGINE=innodb DEFAULT CHARSET=utf8 COMMENT "分類表";

CREATE TABLE IF NOT EXISTS xe_location
(
id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
lname CHAR(20) NOT NULL DEFAULT "" COMMENT "地區名",
pid SMALLINT UNSIGNED NOT NULL DEFAULT 0 COMMENT "父地區的id",
sort SMALLINT UNSIGNED NOT NULL DEFAULT 0 COMMENT "排序",
display TINYINT UNSIGNED NOT NULL DEFAULT 1 COMMENT "是否顯示",
UNIQUE INDEX uniq_lname (lname),
UNIQUE INDEX uniq_pid (pid),
UNIQUE INDEX uniq_sort (sort),
UNIQUE INDEX uniq_display (display)
)ENGINE=innodb DEFAULT CHARSET=utf8 COMMENT="地區表";

CREATE TABLE IF NOT EXISTS xe_goods
(
id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT COMMENT "商品主鍵",
shop_id SMALLINT UNSIGNED NOT NULL COMMENT "外來鍵-商鋪id",
cate_id SMALLINT UNSIGNED NOT NULL COMMENT "外來鍵-分類id",
loca_id SMALLINT UNSIGNED NOT NULL COMMENT "外來鍵-地區id",
main_title VARCHAR(30) NOT NULL DEFAULT "" COMMENT "商品主標題",
sub_title VARCHAR(255) NOT NULL DEFAULT "" COMMENT "商品副標題",
price DECIMAL(7,1) NOT NULL DEFAULT 0 COMMENT "商品價格",
old_price DECIMAL(7,1) NOT NULL DEFAULT 0 COMMENT "原價",
buy SMALLINT NOT NULL DEFAULT 0 COMMENT "購買人數",
goods_img VARCHAR(60) NOT NULL COMMENT "商品圖",
INDEX idx_shop_id (shop_id),
INDEX idx_cate_id (cate_id),
INDEX idx_loca_id (loca_id)
)ENGINE=innodb DEFAULT CHARSET=utf8 COMMENT="商品表";

CREATE TABLE IF NOT EXISTS xe_goods_detail
(
goods_id INT UNSIGNED NOT NULL COMMENT "外來鍵-商品id",
detail TEXT NOT NULL COMMENT "商品描述",
goods_server TINYINT UNSIGNED NOT NULL COMMENT "",
INDEX idx_goods_id (goods_id)
)ENGINE=innodb DEFAULT CHARSET=utf8 COMMENT="商品詳情表";

CREATE TABLE IF NOT EXISTS xe_user
(
id INT UNSIGNED PRIMARY KEY NOT NULL AUTO_INCREMENT,
email VARCHAR(32) NOT NULL COMMENT "郵箱",
username VARCHAR(20) NOT NULL COMMENT "使用者名稱",
password CHAR(32) NOT NULL COMMENT "密碼",
phone CHAR(11) NOT NULL COMMENT "手機號",
UNIQUE uniq_email (email),
UNIQUE uniq_username (username)
)ENGINE=innodb DEFAULT CHARSET=utf8 COMMENT="使用者表";

CREATE TABLE IF NOT EXISTS xe_order
(
id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT COMMENT "訂單id",
user_id INT UNSIGNED NOT NULL COMMENT "外來鍵-使用者id",
goods_id INT UNSIGNED NOT NULL COMMENT "外來鍵-商品id",
goods_num SMALLINT UNSIGNED NOT NULL COMMENT "商品數量",
total_money DECIMAL(7,1) NOT NULL COMMENT "總金額",
INDEX idx_goods_id (goods_id),
INDEX idx_user_id (user_id)
)ENGINE=innodb DEFAULT CHARSET=utf8 COMMENT="訂單表";

CREATE TABLE IF NOT EXISTS xe_comment
(
id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT COMMENT "評論id",
user_id INT UNSIGNED NOT NULL COMMENT "外來鍵-使用者id",
goods_id INT UNSIGNED NOT NULL COMMENT "外來鍵-商品id",
time INT NOT NULL COMMENT "評論時間",
content VARCHAR(255) NOT NULL COMMENT "評論內容",
INDEX idx_user_id (user_id),
INDEX idx_goods_id (goods_id)
)ENGINE=innodb DEFAULT CHARSET=utf8 COMMENT="商品評論表";

CREATE TABLE IF NOT EXISTS xe_cart
(
user_id INT UNSIGNED NOT NULL COMMENT "外來鍵-使用者id",
goods_id INT UNSIGNED NOT NULL COMMENT "外來鍵-商品id",
goods_num SMALLINT NOT NULL COMMENT "商品數",
INDEX idx_user_id (user_id),
INDEX idx_goods_id (goods_id)
)ENGINE=innodb DEFAULT CHARSET=utf8 COMMENT="購物車表";

CREATE TABLE IF NOT EXISTS xe_collect
(
user_id INT UNSIGNED NOT NULL COMMENT "外來鍵-使用者id",
goods_id INT UNSIGNED NOT NULL COMMENT "外來鍵-商品id",
INDEX idx_user_id (user_id),
INDEX idx_goods_id (goods_id)
)ENGINE=innodb DEFAULT CHARSET=utf8 COMMENT="收藏表";

CREATE TABLE IF NOT EXISTS xe_user_address
(
id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
user_id INT UNSIGNED NOT NULL COMMENT "外來鍵-使用者id",
consignee VARCHAR(20) NOT NULL COMMENT "收貨人",
province VARCHAR(20) NOT NULL COMMENT "省",
city VARCHAR(20) NOT NULL COMMENT "市",
county VARCHAR(20) NOT NULL COMMENT "縣",
street VARCHAR(120) NOT NULL COMMENT "街道地址",
tel CHAR(12) NOT NULL COMMENT "電話",
postcode CHAR(10) NOT NULL COMMENT "郵編地址",
INDEX idx_user_id (user_id)
)ENGINE=innodb DEFAULT CHARSET=utf8 COMMENT="使用者收貨地址,可以有多個";

CREATE TABLE IF NOT EXISTS xe_open_bind
(
user_id INT UNSIGNED NOT NULL COMMENT "外來鍵-使用者ID",
openid CHAR(64) NOT NULL COMMENT "開放平臺的id",
open_distinguish TINYINT NOT NULL COMMENT "開放平臺區別",
open_name VARCHAR(20) NOT NULL COMMENT "開放平臺名稱",
INDEX idx_user_id (user_id)
)ENGINE=innodb DEFAULT CHARSET=utf8 COMMENT="第三方平臺與使用者繫結表";

CREATE TABLE IF NOT EXISTS xe_userinfo
(
user_id INT UNSIGNED NOT NULL COMMENT "外來鍵-使用者id",
balance DECIMAL(7,1) NOT NULL COMMENT "餘額",
integral SMALLINT NOT NULL COMMENT "積分",
INDEX idx_user_id (user_id)
)ENGINE=innodb DEFAULT CHARSET=utf8 COMMENT="使用者資訊表,儲存使用者餘額,積分等資料";