前言
一個商城系統,需要有,用戶表,商品表,商品分類表,購物車表,訂單表,訂單明細表,支付信息表,以及物流信息表。
使用PowerDesigner對數據表以及他們之間的關系進行了粗略的設計得出了如下E-R圖:
1.用戶表
2. 商品表
3.商品類別表
4.購物車表
5. 訂單表
6.訂單明細表
7.支付信息表
8.收貨信息表
總結
/* Navicat MySQL Data Transfer Source Server : yc Source Server Version : 50726 Source Host : 47.100.224.4:3306 Source Database : ycshop Target Server Type : MYSQL Target Server Version : 50726 File Encoding : 65001 Date: 2019-05-24 17:30:35 */ SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for cart -- ---------------------------- DROP TABLE IF EXISTS `cart`; CREATE TABLE `cart` ( `carid` varchar(64) NOT NULL, `userid` varchar(64) DEFAULT NULL COMMENT '用戶表id', `proid` varchar(64) DEFAULT NULL COMMENT '商品id', `quantity` int(11) DEFAULT NULL COMMENT '數量', `checked` int(11) DEFAULT NULL COMMENT '是否選擇,1=已勾選,0=未勾選', `createtime` datetime DEFAULT NULL COMMENT '創建時間', `updatetime` datetime DEFAULT NULL COMMENT '更新時間', PRIMARY KEY (`carid`), KEY `FK_Reference_2` (`userid`), KEY `FK_Reference_3` (`proid`), CONSTRAINT `FK_Reference_2` FOREIGN KEY (`userid`) REFERENCES `user` (`userid`), CONSTRAINT `FK_Reference_3` FOREIGN KEY (`proid`) REFERENCES `product` (`proid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of cart -- ---------------------------- -- ---------------------------- -- Table structure for category -- ---------------------------- DROP TABLE IF EXISTS `category`; CREATE TABLE `category` ( `cateid` varchar(64) NOT NULL COMMENT '類別Id', `parentid` varchar(64) DEFAULT NULL COMMENT '父類別id當id=0時說明是根節點,一級類別', `name` varchar(50) DEFAULT NULL COMMENT '類別名稱', `status` int(1) DEFAULT '1' COMMENT '類別狀態1-正常,2-已廢棄', `sortorder` int(4) DEFAULT NULL COMMENT '排序編號,同類展示順序,數值相等則自然排序', `createtime` datetime DEFAULT NULL COMMENT '創建時間', `updatetime` datetime DEFAULT NULL COMMENT '更新時間', PRIMARY KEY (`cateid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of category -- ---------------------------- -- ---------------------------- -- Table structure for orderitem -- ---------------------------- DROP TABLE IF EXISTS `orderitem`; CREATE TABLE `orderitem` ( `id` varchar(64) NOT NULL COMMENT '訂單子表id', `orderid` varchar(64) DEFAULT NULL COMMENT '訂單id', `userid` varchar(64) DEFAULT NULL COMMENT '用戶表id', `proid` varchar(64) DEFAULT NULL COMMENT '商品id', `proname` varchar(100) DEFAULT NULL COMMENT '商品名稱', `proimage` varchar(500) DEFAULT NULL COMMENT '商品圖片地址', `currentunitprice` decimal(20,2) DEFAULT NULL COMMENT '生成訂單時的商品單價,單位是元,保留兩位小數', `quantity` int(10) DEFAULT NULL COMMENT '商品數量', `totalprice` decimal(20,2) DEFAULT NULL COMMENT '商品總價,單位是元,保留兩位小數', `createtime` datetime DEFAULT NULL, `updatetime` datetime DEFAULT NULL, PRIMARY KEY (`id`), KEY `FK_Reference_5` (`orderid`), KEY `FK_Reference_8` (`userid`), KEY `FK_Reference_9` (`proid`), CONSTRAINT `FK_Reference_5` FOREIGN KEY (`orderid`) REFERENCES `orders` (`orderid`), CONSTRAINT `FK_Reference_8` FOREIGN KEY (`userid`) REFERENCES `user` (`userid`), CONSTRAINT `FK_Reference_9` FOREIGN KEY (`proid`) REFERENCES `product` (`proid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of orderitem -- ---------------------------- -- ---------------------------- -- Table structure for orders -- ---------------------------- DROP TABLE IF EXISTS `orders`; CREATE TABLE `orders` ( `orderid` varchar(64) NOT NULL COMMENT '訂單id', `userid` varchar(64) DEFAULT NULL COMMENT '用戶id', `shoppingid` varchar(64) DEFAULT NULL, `payment` decimal(20,2) DEFAULT NULL COMMENT '實際付款金額,單位是元,保留兩位小數', `paymenttype` int(4) DEFAULT NULL COMMENT '支付類型,1-在線支付', `postage` int(10) DEFAULT NULL COMMENT '運費,單位是元', `status` int(10) DEFAULT NULL COMMENT '訂單狀態:0-已取消-10-未付款,20-已付款,40-已發貨,50-交易成功,60-交易關閉', `paymenttime` datetime DEFAULT NULL COMMENT '支付時間', `sendtime` datetime DEFAULT NULL COMMENT '發貨時間', `endtime` datetime DEFAULT NULL COMMENT '交易完成時間', `closetime` datetime DEFAULT NULL COMMENT '交易關閉時間', `createtime` datetime DEFAULT NULL COMMENT '創建時間', `updatetime` datetime DEFAULT NULL COMMENT '更新時間', PRIMARY KEY (`orderid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of orders -- ---------------------------- -- ---------------------------- -- Table structure for payinfo -- ---------------------------- DROP TABLE IF EXISTS `payinfo`; CREATE TABLE `payinfo` ( `payid` varchar(64) NOT NULL, `orderid` varchar(64) DEFAULT NULL COMMENT '訂單id', `userid` varchar(64) DEFAULT NULL COMMENT '用戶表id', `payplatform` int(10) DEFAULT NULL COMMENT '支付平台:1-支付寶,2-微信', `platformnumber` varchar(200) DEFAULT NULL COMMENT '支付流水號', `platformstatus` varchar(20) DEFAULT NULL COMMENT '支付狀態', `createtime` datetime DEFAULT NULL COMMENT '創建時間', `updatetime` datetime DEFAULT NULL COMMENT '更新時間', PRIMARY KEY (`payid`), KEY `FK_Reference_6` (`orderid`), KEY `FK_Reference_7` (`userid`), CONSTRAINT `FK_Reference_6` FOREIGN KEY (`orderid`) REFERENCES `orders` (`orderid`), CONSTRAINT `FK_Reference_7` FOREIGN KEY (`userid`) REFERENCES `user` (`userid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of payinfo -- ---------------------------- -- ---------------------------- -- Table structure for product -- ---------------------------- DROP TABLE IF EXISTS `product`; CREATE TABLE `product` ( `proid` varchar(64) NOT NULL COMMENT '商品id', `cateid` varchar(64) DEFAULT NULL COMMENT '類別Id', `name` varchar(100) NOT NULL COMMENT '商品名稱', `subtitle` varchar(200) DEFAULT NULL COMMENT '商品副標題', `mainimage` varchar(500) DEFAULT NULL COMMENT '產品主圖,url相對地址', `subimages` 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-刪除', `createtime` datetime DEFAULT NULL COMMENT '創建時間', `updatetime` datetime DEFAULT NULL COMMENT '更新時間', PRIMARY KEY (`proid`), KEY `FK_Reference_1` (`cateid`), CONSTRAINT `FK_Reference_1` FOREIGN KEY (`cateid`) REFERENCES `category` (`cateid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of product -- ---------------------------- -- ---------------------------- -- Table structure for shopping -- ---------------------------- DROP TABLE IF EXISTS `shopping`; CREATE TABLE `shopping` ( `shoppingid` varchar(64) NOT NULL, `userid` varchar(64) DEFAULT NULL COMMENT '用戶表id', `orderid` varchar(64) DEFAULT NULL COMMENT '訂單id', `receivername` varchar(20) DEFAULT NULL COMMENT '收貨姓名', `receiverphone` varchar(20) DEFAULT NULL COMMENT '收貨固定電話', `receivermobile` varchar(20) DEFAULT NULL COMMENT '收貨移動電話', `receiverprovince` varchar(20) DEFAULT NULL COMMENT '省份', `receivercity` varchar(20) DEFAULT NULL COMMENT '城市', `receiverdistrict` varchar(20) DEFAULT NULL COMMENT '區/縣', `receiveraddress` varchar(200) DEFAULT NULL COMMENT '詳細地址', `createtime` datetime DEFAULT NULL, `updatetime` datetime DEFAULT NULL, PRIMARY KEY (`shoppingid`), KEY `FK_Reference_10` (`orderid`), KEY `FK_Reference_4` (`userid`), CONSTRAINT `FK_Reference_10` FOREIGN KEY (`orderid`) REFERENCES `orders` (`orderid`), CONSTRAINT `FK_Reference_4` FOREIGN KEY (`userid`) REFERENCES `user` (`userid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of shopping -- ---------------------------- -- ---------------------------- -- Table structure for user -- ---------------------------- DROP TABLE IF EXISTS `user`; CREATE TABLE `user` ( `userid` varchar(64) NOT NULL COMMENT '用戶表id', `username` varchar(50) NOT NULL COMMENT '用戶名', `password` varchar(50) NOT NULL COMMENT '用戶密碼,MD5加密', `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-普通用戶', `createtime` datetime NOT NULL COMMENT '創建時間', `updatetime` datetime NOT NULL COMMENT '更新時間', PRIMARY KEY (`userid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of user -- ----------------------------