項目總結---表結構設計
阿新 • • 發佈:2018-02-13
庫存 訂單號 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;
總結:用戶表,商品表,分類表,購物車表,訂單表,訂單項目表,收貨地址表,支付信息表
項目總結---表結構設計