数据库设计:商品表,秒杀商品表,订单表,秒杀订单,用户表
秒杀商品表和商品表分开。原因:每次秒杀活动都会操作数据库,修改秒杀商品的字段,因为每次秒杀时候。对应的秒杀时间段,秒杀实现,秒杀功能,价格等都不同,商品表不易于维护。而且,秒杀商品的个数和普通商品的个数是独立计算的,不同于普通商品的库存字段。
create table goods
(
id BIGINT(20) primary key not null auto_increment,
goods_name varchar(16) DEFAULT NULL,
goods_title varchar(64) DEFAULT NULL,
goods_img varchar(64) DEFAULT NULL,
goods_detail LONGTEXT,
goods_price DECIMAL(10,2) DEFAULT '0.00',
goods_stock INT(11) DEFAULT '0'
);
create table miaosha_goods
(
id BIGINT(20) primary key not null auto_increment,
goods_id BIGINT(20) DEFAULT NULL,
miaosha_price DECIMAL(10,2) DEFAULT '0.00',
stock_count INT(11) DEFAULT NULL,
start_date datetime DEFAULT NULL,
end_date datetime DEFAULT NULL
);
create table miaosha_order
(
id BIGINT(20) primary key not null auto_increment,
user_id BIGINT(20) DEFAULT NULL,
order_id BIGINT(20) DEFAULT NULL,
goods_id BIGINT(20) DEFAULT NULL
);
create table order_info
(
id BIGINT(20) primary key not null auto_increment,
user_id BIGINT(20) DEFAULT NULL,
goods_id BIGINT(20) DEFAULT NULL,
/*收获地址*/
delivery_addr_id BIGINT(20) DEFAULT NULL,
goods_name varchar(16) DEFAULT NULL,
goods_count INT(11) DEFAULT '0',
goods_price decimal(10,2) DEFAULT '0.00',
order_channel TINYINT(4) DEFAULT '0',
order_status TINYINT(4) DEFAULT '0',
create_date datetime DEFAULT NULL,
pay_date datetime DEFAULT NULL
);
create table miaosha_user
(
id BIGINT(20) primary key not null auto_increment,
nickname VARCHAR(255) NOT NULL,
pwd VARCHAR(32) DEFAULT NULL,
salt VARCHAR(10) DEFAULT NULL,
head VARCHAR(128) DEFAULT NULL,
register_date DATETIME DEFAULT NULL,
last_login_time DATETIME DEFAULT NULL,
login_count INT(11) DEFAULT 0
);
与数据库表相对应的domain对象:
商品表对象Goods:
public class Goods {
private Long id;
private String goodsName;
private String goodsTitle;
private String goodsImg;
private String goodsDetail;
private Double goodsPrice;
//库存
private Integer goodsStock;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getGoodsName() {
return goodsName;
}
public void setGoodsName(String goodsName) {
this.goodsName = goodsName;
}
public String getGoodsTitle() {
return goodsTitle;
}
public void setGoodsTitle(String goodsTitle) {
this.goodsTitle = goodsTitle;
}
public String getGoodsImg() {
return goodsImg;
}
public void setGoodsImg(String goodsImg) {
this.goodsImg = goodsImg;
}
public String getGoodsDetail() {
return goodsDetail;
}
public void setGoodsDetail(String goodsDetail) {
this.goodsDetail = goodsDetail;
}
public Double getGoodsPrice() {
return goodsPrice;
}
public void setGoodsPrice(Double goodsPrice) {
this.goodsPrice = goodsPrice;
}
public Integer getGoodsStock() {
return goodsStock;
}
public void setGoodsStock(Integer goodsStock) {
this.goodsStock = goodsStock;
}
}
秒杀商品表MiaoshaGoods:
public class MiaoshaGoods {
private Long id;
private Long goodsId;
private Double miaoshaPrice;
private Integer stockCount;
private Date startDate;
private Date endDate;
public Double getMiaoshaPrice() {
return miaoshaPrice;
}
public void setMiaoshaPrice(Double miaoshaPrice) {
this.miaoshaPrice = miaoshaPrice;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getGoodsId() {
return goodsId;
}
public void setGoodsId(Long goodsId) {
this.goodsId = goodsId;
}
public Integer getStockCount() {
return stockCount;
}
public void setStockCount(Integer stockCount) {
this.stockCount = stockCount;
}
public Date getStartDate() {
return startDate;
}
public void setStartDate(Date startDate) {
this.startDate = startDate;
}
public Date getEndDate() {
return endDate;
}
public void setEndDate(Date endDate) {
this.endDate = endDate;
}
}
详细订单表OrderInfo :
public class OrderInfo {
private Long id;
private Long userId;
private Long goodsId;
private Long deliveryAddrId;
private String goodsName;
private Integer goodsCount;
private Double goodsPrice;
private Integer orderChannel;
private Integer orderStatus;
private Date createDate;
private Date payDate;
public Integer getOrderStatus() {
return orderStatus;
}
public void setOrderStatus(Integer orderStatus) {
this.orderStatus = orderStatus;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public Long getGoodsId() {
return goodsId;
}
public void setGoodsId(Long goodsId) {
this.goodsId = goodsId;
}
public Long getDeliveryAddrId() {
return deliveryAddrId;
}
public void setDeliveryAddrId(Long deliveryAddrId) {
this.deliveryAddrId = deliveryAddrId;
}
public String getGoodsName() {
return goodsName;
}
public void setGoodsName(String goodsName) {
this.goodsName = goodsName;
}
public Integer getGoodsCount() {
return goodsCount;
}
public void setGoodsCount(Integer goodsCount) {
this.goodsCount = goodsCount;
}
public Double getGoodsPrice() {
return goodsPrice;
}
public void setGoodsPrice(Double goodsPrice) {
this.goodsPrice = goodsPrice;
}
public Integer getOrderChannel() {
return orderChannel;
}
public void setOrderChannel(Integer orderChannel) {
this.orderChannel = orderChannel;
}
public Date getCreateDate() {
return createDate;
}
public void setCreateDate(Date createDate) {
this.createDate = createDate;
}
public Date getPayDate() {
return payDate;
}
public void setPayDate(Date payDate) {
this.payDate = payDate;
}
}
秒杀订单表MiaoshaOrder :
public class MiaoshaOrder {
private Long id;
private Long userId;
private Long orderId;
private Long goodsId;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public Long getOrderId() {
return orderId;
}
public void setOrderId(Long orderId) {
this.orderId = orderId;
}
public Long getGoodsId() {
return goodsId;
}
public void setGoodsId(Long goodsId) {
this.goodsId = goodsId;
}
}
秒杀用户表MiaoshaUser:
public class MiaoshaUser {
private Long id;
private String nickname;
private String pwd;
private String salt;
private String head;
private Date registerDate;
private Date lastLoginDate;
private Integer loginCount;
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
public String getSalt() {
return salt;
}
public void setSalt(String salt) {
this.salt = salt;
}
public String getHead() {
return head;
}
public void setHead(String head) {
this.head = head;
}
public Date getRegisterDate() {
return registerDate;
}
public void setRegisterDate(Date registerDate) {
this.registerDate = registerDate;
}
public Date getLastLoginDate() {
return lastLoginDate;
}
public void setLastLoginDate(Date lastLoginDate) {
this.lastLoginDate = lastLoginDate;
}
public Integer getLoginCount() {
return loginCount;
}
public void setLoginCount(Integer loginCount) {
this.loginCount = loginCount;
}
}