SpringBoot秒殺系統實戰05-數據庫設計與對應的domain對象

數據庫設計:商品表,秒殺商品表,訂單表,秒殺訂單,用戶表
秒殺商品表和商品表分開。原因:每次秒殺活動都會操作數據庫,修改秒殺商品的字段,因爲每次秒殺時候。對應的秒殺時間段,秒殺實現,秒殺功能,價格等都不同,商品表不易於維護。而且,秒殺商品的個數和普通商品的個數是獨立計算的,不同於普通商品的庫存字段。

	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;
}      
} 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章