我是一段不羁的公告!
记得给艿艿这 3 个项目加油,添加一个 STAR 噢。
https://github.com/YunaiV/SpringBoot-Labs
https://github.com/YunaiV/onemall
https://github.com/YunaiV/ruoyi-vue-pro

数据库实体设计 —— 营销(4.2)之限制折扣

艿艿目前正在做一个开源的电商项目,胖友可以 star 下。https://gitee.com/zhijiantianya/onemall

1. 概述

本文主要分享营销模块的 限时折扣 的数据库实体设计

基于如下信息,逆向猜测数据库实体:

【护脸旁白】
笔者非电商行业出身 && 非有赞工程师,所以有错误或不合理的地方,烦请斧正和探讨。
有赞是个各方面都很 NICE 的公司,推荐

2. 背景了解

参见 《如何给商品设置限时折扣/前N件折扣?》 文档。

3. 数据库实体

LimitDiscountActivity ,限制折扣活动。

下面我们分块分享每个字段。

3.1 基本信息

/**
* 编号,自增唯一
*/
private Integer id;
/**
* 店铺编号
*/
private Integer shopId;
/**
* 名称
*/
private String name;
/**
* 描述,2 到 5 字。
*/
private String description;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;

3.2 状态信息

/**
* 状态
*
* 1-未开始
* 2-进行中
* 3-已结束
* 4-已删除
*/
private Integer status;
/**
* 结束类型
*
* 1-活动到期
* 2-手动删除
* 3-手动失效
*/
private Integer endType;
/**
* 活动到期时间
*/
private Date expireTime;
/**
* 设置为失效时间
*/
private Date invalidTime;
/**
* 删除时间
*/
private Date deleteTime;
  • status ,状态。迁移过程如下图:
  • endType ,结束类型。
  • 因为迁移状态比较灵活,所以用多个字段记录时间。
    • expireTime ,活动到期时间。
    • invalidTime ,设置为失效时间。
    • deleteTime ,删除时间。

3.3 周期信息

/**
* 开始时间
*/
private Date startTime;
/**
* 结束时间
*/
private Date endTime;
/**
* 周期类型
*
* 0-none,无
* 1-daily,每天
* 2-monthly,每月
* 3-weekly,每周
*/
private Integer periodType;
/**
* 周期开始时间,例如:0000
*
* 适用:所有周期类型
*/
private Integer periodStartTime;
/**
* 周期结束时间,例如:2359
*
* 适用:所有周期类型
*/
private Integer periodStartEnd;
/**
* 周期每月几号
*
* 适用:每月
*/
private Integer periodMonthDay;
/**
* 每周几集合,通过字节位存储周几
*
* 适用:每周
*/
private Integer periodWeekdays;

3.4 商品优惠信息

/**
* 限购设置类型
*
* 0-不限购
* 1-每人每种商品限购件数
* 2-每人每种商品前件数享受折扣
*/
private Integer quotaType;
/**
* 限购数量,根据 {@link #quotaType} 限制。
*/
private Integer quota;
/**
* 抹零方式
*
* 1-不抹零
* 2-抹去角和分
* 3-抹去分
*/
private Integer earseType;
/**
* 商品数组
*
* JSON 格式,数组,每个元素为 {@link ItemVO}
*/
private String items;
  • items ,商品数组。因为无检索需求,使用 JSON 格式化。每个元素为 ItemVO ,代码如下:

    /**
    * 商品编号
    */
    private Integer itemId;
    /**
    * 打折方式
    *
    * 2-打折
    * 3-减价
    */
    private Integer discountType;
    /**
    * 当【打折】时,折扣,百分比。例如:75 折为 75 。
    * 当【减价】时,价格,单位:分。例如:8 分为 8 。
    */
    private Integer discountValue;

4. API

有赞云暂未提供相关 API ,因此本小节省略。

666. 彩蛋

小文一篇,涉及到交易价格计算的部分,在后续文章分享。

总访客数 && 总访问量