数据库中表的设计

四张表:商品表,秒杀商品表,订单表,秒杀订单,用户表

秒杀商品和商品表,分开。原因:为了防止多次活动,若是在每次秒杀活动的时候,设置一个字段来确定秒杀商品,也可以。

但是每次都会操作数据库,修改秒杀商品的字段,因为每次秒杀时候。对应的秒杀时间段,秒杀实现,秒杀功能,价格,都不同,时间常了,商品表不易于维护。而且,秒杀商品的个数和普通商品的个数是独立计算的,不同于普通商品的库存字段。

/*用户表*/
CREATE TABLE `miaosha_user` (
  `id` BIGINT(20) NOT NULL COMMENT '用户id,手机号码',
  `nickname` VARCHAR(255) NOT NULL COMMENT '昵称',
  `password` VARCHAR(32) DEFAULT NULL COMMENT 'MD5(pass明文+固定salt)+salt',
  `salt` VARCHAR(10) DEFAULT NULL COMMENT '盐值',
  `head` VARCHAR(128) DEFAULT NULL COMMENT '头像,云存储ID',
  `register_date` DATETIME DEFAULT NULL  COMMENT '注册时间',
  `last_login_time` DATETIME DEFAULT NULL  COMMENT '上次登录时间',
  `login_count` INT(11) DEFAULT 0 COMMENT '登录次数',
  PRIMARY KEY (`id`)
)ENGINE =innodb DEFAULT CHARSET =utf8mb4;

/*商品表*/
CREATE  TABLE `good`(
  `id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '商品ID',
  `goods_name` varchar(16) DEFAULT  NULL  COMMENT '商品名称',
  `goods_title` VARCHAR(64) DEFAULT NULL COMMENT '商品标题',
  `goods_img` VARCHAR(64)  DEFAULT NULL COMMENT '商品的图片',
  `goods_detail` LONGTEXT COMMENT '商品详情',
  `goods_price` DECIMAL(10,2) DEFAULT '0.00' COMMENT '商品单价',
  `goods_stock` INT(11) DEFAULT 0 COMMENT '商品库存  -1表示 没有限制',
  PRIMARY KEY (`id`)
)ENGINE = innodb AUTO_INCREMENT=3  DEFAULT CHARSET=utf8mb4;



INSERT INTO `good` VALUES (1,'iphonex','苹果手机','/img/iphonex.png','iphonx 苹果手机',8700.00,100);
INSERT INTO `good` VALUES (2,'华为mate9','华为手机','/img/mate.png','华为手机 华为mate9',3400.00,-1);

/*秒杀商品表*/

CREATE TABLE `miaosha_goods`(
  `id` BIGINT(20) NOT NULL  AUTO_INCREMENT COMMENT '秒杀商品id',
  `goods_id` BIGINT(20) DEFAULT NULL COMMENT '商品id',
  `miaosha_price` DECIMAL(10,2) DEFAULT '0.00' COMMENT '秒杀价',
  `stock_count` INT(11) DEFAULT NULL COMMENT '库存数量',
  `start_date` DATETIME DEFAULT NULL COMMENT '秒杀开始时间',
  `end_date` DATETIME DEFAULT NULL  COMMENT '秒杀结束时间',
  PRIMARY KEY (`id`)
)ENGINE =innodb AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4;


/*订单表*/
CREATE TABLE `order_info`(
  `id` BIGINT(20) NOT NULL AUTO_INCREMENT,
  `user_id` BIGINT(20) DEFAULT NULL COMMENT '用户id',
  `goods_id` BIGINT(20) DEFAULT NULL COMMENT '商品id',
  `delivery_addr_id` BIGINT(20) DEFAULT NULL COMMENT '收货地址',
  `goods_name` VARCHAR(16) DEFAULT NULL  COMMENT '冗余多来的商品名称',
  `goods_count` INT(11) DEFAULT '0' COMMENT '商品数量',
  `goods_price` DECIMAL(10,2) DEFAULT '0.00' COMMENT '商品单价',
  `order_channel` TINYINT(4) DEFAULT 0 COMMENT '1pc 2 android 3ios',
  `status` TINYINT(4) DEFAULT 0 COMMENT '订单状态 0 新建未支付 1 已支付 2 已发货 3 已收货 4 已退款 5 已完成',
  `create_date` DATETIME DEFAULT NULL COMMENT '订单创建时间',
  `pay_date` DATETIME DEFAULT NULL  COMMENT '订单支付时间',
  PRIMARY KEY (`id`)
)ENGINE =innodb AUTO_INCREMENT=12 DEFAULT CHARSET =utf8mb4;

/*秒杀订单表*/
CREATE  TABLE `miaosha_order` (
  `id` BIGINT(20) not null auto_increment,
  `user_id` BIGINT(20) DEFAULT NULL ,
  `order_id` BIGINT(20) DEFAULT NULL ,
  `goods_id` BIGINT(20) DEFAULT NULL ,
  PRIMARY KEY (`id`)
)ENGINE =innodb AUTO_INCREMENT=3 DEFAULT CHARSET =utf8mb4;


猜你喜欢

转载自blog.csdn.net/weixin_38035852/article/details/81053937
今日推荐