1. 程式人生 > >項目總結---表結構設計

項目總結---表結構設計

庫存 訂單號 ont sql ice col 流水號 ren 順序

DROP TABLE IF EXISTS `mmall_user`;
CREATE TABLE `mmall_user` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 用戶表id,
  `username` varchar(50) NOT NULL COMMENT 用戶名,
  `password` varchar(50) NOT NULL COMMENT 用戶密碼,MD5加密,
  `email` varchar(50) DEFAULT NULL,
  `phone` varchar(20) DEFAULT NULL,
  `question` 
varchar(100) DEFAULT NULL COMMENT 找回密碼問題, `answer` varchar(100) DEFAULT NULL COMMENT 找回密碼答案, `role` int(4) NOT NULL COMMENT 角色0-管理員,1-普通用戶, `create_time` datetime NOT NULL COMMENT 創建時間, `update_time` datetime NOT NULL COMMENT 最後一次更新時間, PRIMARY KEY (`id`), UNIQUE KEY `user_name_unique` (`username`) USING BTREE ) ENGINE
=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=utf8;

用戶表:username作為唯一索引,讓MySql為我們確保username的唯一性。

產品表:產品所屬分類。產品主圖采用副圖中的第一張圖,因為經常使用,單獨拿出來。price的精度很重要。

商品狀態:商品一般是不會被刪除的,根據不同狀態做不同處理。

DROP TABLE IF EXISTS `mmall_product`;
CREATE TABLE `mmall_product` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 商品id
, `category_id` int(11) NOT NULL COMMENT 分類id,對應mmall_category表的主鍵, `name` varchar(100) NOT NULL COMMENT 商品名稱, `subtitle` varchar(200) DEFAULT NULL COMMENT 商品副標題, `main_image` varchar(500) DEFAULT NULL COMMENT 產品主圖,url相對地址, `sub_images` text COMMENT 圖片地址,json格式,擴展用, `detail` text COMMENT 商品詳情, `price` decimal(20,2) NOT NULL COMMENT 價格,單位-元保留兩位小數, `stock` int(11) NOT NULL COMMENT 庫存數量, `status` int(6) DEFAULT 1 COMMENT 商品狀態.1-在售 2-下架 3-刪除, `create_time` datetime DEFAULT NULL COMMENT 創建時間, `update_time` datetime DEFAULT NULL COMMENT 更新時間, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8;

分類表:設計特色,無限層次分類。

DROP TABLE IF EXISTS `mmall_category`;
CREATE TABLE `mmall_category` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 類別Id,
  `parent_id` int(11) DEFAULT NULL COMMENT 父類別id當id=0時說明是根節點,一級類別,
  `name` varchar(50) DEFAULT NULL COMMENT 類別名稱,
  `status` tinyint(1) DEFAULT 1 COMMENT 類別狀態1-正常,2-已廢棄,
  `sort_order` int(4) DEFAULT NULL COMMENT 排序編號,同類展示順序,數值相等則自然排序,
  `create_time` datetime DEFAULT NULL COMMENT 創建時間,
  `update_time` datetime DEFAULT NULL COMMENT 更新時間,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=100032 DEFAULT CHARSET=utf8;

購物車表:經常通過用戶id來查找商品,為其建立一個索引。

DROP TABLE IF EXISTS `mmall_cart`;
CREATE TABLE `mmall_cart` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) NOT NULL,
  `product_id` int(11) DEFAULT NULL COMMENT 商品id,
  `quantity` int(11) DEFAULT NULL COMMENT 數量,
  `checked` int(11) DEFAULT NULL COMMENT 是否選擇,1=已勾選,0=未勾選,
  `create_time` datetime DEFAULT NULL COMMENT 創建時間,
  `update_time` datetime DEFAULT NULL COMMENT 更新時間,
  PRIMARY KEY (`id`),
  KEY `user_id_index` (`user_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=131 DEFAULT CHARSET=utf8;

訂單子表(訂單中的每一個條目):使用user_id和order_no作為索引。為了方便查詢,存在冗余。

DROP TABLE IF EXISTS `mmall_order_item`;
CREATE TABLE `mmall_order_item` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 訂單子表id,
  `user_id` int(11) DEFAULT NULL,
  `order_no` bigint(20) DEFAULT NULL,
  `product_id` int(11) DEFAULT NULL COMMENT 商品id,
  `product_name` varchar(100) DEFAULT NULL COMMENT 商品名稱,
  `product_image` varchar(500) DEFAULT NULL COMMENT 商品圖片地址,
  `current_unit_price` decimal(20,2) DEFAULT NULL COMMENT 生成訂單時的商品單價,單位是元,保留兩位小數,
  `quantity` int(10) DEFAULT NULL COMMENT 商品數量,
  `total_price` decimal(20,2) DEFAULT NULL COMMENT 商品總價,單位是元,保留兩位小數,
  `create_time` datetime DEFAULT NULL,
  `update_time` datetime DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `order_no_index` (`order_no`) USING BTREE,
  KEY `order_no_user_id_index` (`user_id`,`order_no`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=135 DEFAULT CHARSET=utf8;

訂單表:

DROP TABLE IF EXISTS `mmall_order`;
CREATE TABLE `mmall_order` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 訂單id,
  `order_no` bigint(20) DEFAULT NULL COMMENT 訂單號,
  `user_id` int(11) DEFAULT NULL COMMENT 用戶id,
  `shipping_id` int(11) DEFAULT NULL,
  `payment` decimal(20,2) DEFAULT NULL COMMENT 實際付款金額,單位是元,保留兩位小數,
  `payment_type` int(4) DEFAULT NULL COMMENT 支付類型,1-在線支付,
  `postage` int(10) DEFAULT NULL COMMENT 運費,單位是元,
  `status` int(10) DEFAULT NULL COMMENT 訂單狀態:0-已取消-10-未付款,20-已付款,40-已發貨,50-交易成功,60-交易關閉,
  `payment_time` datetime DEFAULT NULL COMMENT 支付時間,
  `send_time` datetime DEFAULT NULL COMMENT 發貨時間,
  `end_time` datetime DEFAULT NULL COMMENT 交易完成時間,
  `close_time` datetime DEFAULT NULL COMMENT 交易關閉時間,
  `create_time` datetime DEFAULT NULL COMMENT 創建時間,
  `update_time` datetime DEFAULT NULL COMMENT 更新時間,
  PRIMARY KEY (`id`),
  UNIQUE KEY `order_no_index` (`order_no`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=118 DEFAULT CHARSET=utf8;

支付信息表:

DROP TABLE IF EXISTS `mmall_pay_info`;
CREATE TABLE `mmall_pay_info` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) DEFAULT NULL COMMENT 用戶id,
  `order_no` bigint(20) DEFAULT NULL COMMENT 訂單號,
  `pay_platform` int(10) DEFAULT NULL COMMENT 支付平臺:1-支付寶,2-微信,
  `platform_number` varchar(200) DEFAULT NULL COMMENT 支付寶支付流水號,
  `platform_status` varchar(20) DEFAULT NULL COMMENT 支付寶支付狀態,
  `create_time` datetime DEFAULT NULL COMMENT 創建時間,
  `update_time` datetime DEFAULT NULL COMMENT 更新時間,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=61 DEFAULT CHARSET=utf8;

收貨地址表:相對簡單點。

DROP TABLE IF EXISTS `mmall_shipping`;
CREATE TABLE `mmall_shipping` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) DEFAULT NULL COMMENT 用戶id,
  `receiver_name` varchar(20) DEFAULT NULL COMMENT 收貨姓名,
  `receiver_phone` varchar(20) DEFAULT NULL COMMENT 收貨固定電話,
  `receiver_mobile` varchar(20) DEFAULT NULL COMMENT 收貨移動電話,
  `receiver_province` varchar(20) DEFAULT NULL COMMENT 省份,
  `receiver_city` varchar(20) DEFAULT NULL COMMENT 城市,
  `receiver_district` varchar(20) DEFAULT NULL COMMENT 區/縣,
  `receiver_address` varchar(200) DEFAULT NULL COMMENT 詳細地址,
  `receiver_zip` varchar(6) DEFAULT NULL COMMENT 郵編,
  `create_time` datetime DEFAULT NULL,
  `update_time` datetime DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8;

總結:用戶表,商品表,分類表,購物車表,訂單表,訂單項目表,收貨地址表,支付信息表

項目總結---表結構設計