天天看點

資料表結構設計

  • 使用者表
CREATE TABLE `nickymall_user` (
  `id` int() NOT NULL AUTO_INCREMENT COMMENT '使用者表id',
  `username` varchar() NOT NULL COMMENT '使用者名',
  `password` varchar() NOT NULL COMMENT '使用者密碼,MD5加密',
  `email` varchar() DEFAULT NULL,
  `phone` varchar() DEFAULT NULL,
  `question` varchar() DEFAULT NULL COMMENT '找回密碼問題',
  `answer` varchar() DEFAULT NULL COMMENT '找回密碼答案',
  `role` int() 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= DEFAULT CHARSET=utf8;
           
  • 商品分類表
CREATE TABLE `nickymall_category` (
  `id` int() NOT NULL AUTO_INCREMENT COMMENT '類别Id',
  `parent_id` int() DEFAULT NULL COMMENT '父類别id當id=0時說明是根節點,一級類别',
  `name` varchar() DEFAULT NULL COMMENT '類别名稱',
  `status` tinyint() DEFAULT '1' COMMENT '類别狀态1-正常,2-已廢棄',
  `sort_order` int() DEFAULT NULL COMMENT '排序編号,同類展示順序,數值相等則自然排序',
  `create_time` datetime DEFAULT NULL COMMENT '建立時間',
  `update_time` datetime DEFAULT NULL COMMENT '更新時間',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT= DEFAULT CHARSET=utf8;
           

由于之後搜尋的需要,分類表必須是能遞歸的,遞歸的退出條件是parent_id為0,即遞歸至根節點。

  • 産品表
CREATE TABLE `nickymall_product` (
  `id` int() NOT NULL AUTO_INCREMENT COMMENT '商品id',
  `category_id` int() NOT NULL COMMENT '分類id,對應mmall_category表的主鍵',
  `name` varchar() NOT NULL COMMENT '商品名稱',
  `subtitle` varchar() DEFAULT NULL COMMENT '商品副标題',
  `main_image` varchar() DEFAULT NULL COMMENT '産品主圖,url相對位址',
  `sub_images` text COMMENT '圖檔位址,json格式,擴充用',
  `detail` text COMMENT '商品詳情',
  `price` decimal(,) NOT NULL COMMENT '價格,機關-元保留兩位小數',
  `stock` int() NOT NULL COMMENT '庫存數量',
  `status` int() 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= DEFAULT CHARSET=utf8;
           
  • 購物車表
CREATE TABLE `nickymall_cart` (
  `id` int() NOT NULL AUTO_INCREMENT,
  `user_id` int() NOT NULL,
  `product_id` int() DEFAULT NULL COMMENT '商品id',
  `quantity` int() DEFAULT NULL COMMENT '數量',
  `checked` int() 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= DEFAULT CHARSET=utf8;
           
  • 支付資訊表
CREATE TABLE `nickymall_pay_info` (
  `id` int() NOT NULL AUTO_INCREMENT,
  `user_id` int() DEFAULT NULL COMMENT '使用者id',
  `order_no` bigint() DEFAULT NULL COMMENT '訂單号',
  `pay_platform` int() DEFAULT NULL COMMENT '支付平台:1-支付寶,2-微信',
  `platform_number` varchar() DEFAULT NULL COMMENT '支付寶支付流水号',
  `platform_status` varchar() DEFAULT NULL COMMENT '支付寶支付狀态',
  `create_time` datetime DEFAULT NULL COMMENT '建立時間',
  `update_time` datetime DEFAULT NULL COMMENT '更新時間',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT= DEFAULT CHARSET=utf8;
           
  • 訂單表
CREATE TABLE `nickymall_order` (
  `id` int() NOT NULL AUTO_INCREMENT COMMENT '訂單id',
  `order_no` bigint() DEFAULT NULL COMMENT '訂單号',
  `user_id` int() DEFAULT NULL COMMENT '使用者id',
  `shipping_id` int() DEFAULT NULL,
  `payment` decimal(,) DEFAULT NULL COMMENT '實際付款金額,機關是元,保留兩位小數',
  `payment_type` int() DEFAULT NULL COMMENT '支付類型,1-線上支付',
  `postage` int() DEFAULT NULL COMMENT '運費,機關是元',
  `status` int() 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= DEFAULT CHARSET=utf8;
           
  • 訂單明細表
CREATE TABLE `nickymall_order_item` (
  `id` int() NOT NULL AUTO_INCREMENT COMMENT '訂單子表id',
  `user_id` int() DEFAULT NULL,
  `order_no` bigint() DEFAULT NULL,
  `product_id` int() DEFAULT NULL COMMENT '商品id',
  `product_name` varchar() DEFAULT NULL COMMENT '商品名稱',
  `product_image` varchar() DEFAULT NULL COMMENT '商品圖檔位址',
  `current_unit_price` decimal(,) DEFAULT NULL COMMENT '生成訂單時的商品單價,機關是元,保留兩位小數',
  `quantity` int() DEFAULT NULL COMMENT '商品數量',
  `total_price` decimal(,) 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= DEFAULT CHARSET=utf8;
           
  • 收貨位址表
CREATE TABLE `mmall_shipping` (
  `id` int() NOT NULL AUTO_INCREMENT,
  `user_id` int() DEFAULT NULL COMMENT '使用者id',
  `receiver_name` varchar() DEFAULT NULL COMMENT '收貨姓名',
  `receiver_phone` varchar() DEFAULT NULL COMMENT '收貨固定電話',
  `receiver_mobile` varchar() DEFAULT NULL COMMENT '收貨行動電話',
  `receiver_province` varchar() DEFAULT NULL COMMENT '省份',
  `receiver_city` varchar() DEFAULT NULL COMMENT '城市',
  `receiver_district` varchar() DEFAULT NULL COMMENT '區/縣',
  `receiver_address` varchar() DEFAULT NULL COMMENT '詳細位址',
  `receiver_zip` varchar() DEFAULT NULL COMMENT '郵編',
  `create_time` datetime DEFAULT NULL,
  `update_time` datetime DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT= DEFAULT CHARSET=utf8;