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

数据库实体设计 —— 营销(4.5)之优惠套餐

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

1. 概述

本文主要分享营销模块的 优惠套餐 的数据库实体设计

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

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

2. 背景了解

参见文档如下:

不同于我们前面看到的几种促销活动,优惠套餐设置商品时,可以选择到 SKU 级别。即,一个商品里可以部分 SKU 参与优惠套餐。

另外,参与优惠套餐中的商品,不允许编辑价格、规格等信息,避免影响套餐。并且,进行中的优惠套餐自身不允许编辑。

3. 数据库实体

PackageBuyActivity ,优惠套餐活动。

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

3.1 基本信息

/**
* 编号,自增唯一
*/
private Integer id;
/**
* 店铺编号
*/
private Integer shopId;
/**
* 名称
*/
private String name;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;

3.2 状态信息

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

3.3 时间信息

/**
* 开始时间
*/
private Date startTime;
/**
* 结束时间
*/
private Date endTime;

3.4 商品优惠信息

/**
* 套餐价格,单位:分
*/
private Integer price;
/**
* 商品原价最小值,单位:分
*/
private Integer originPriceMin;
/**
* 商品原价最大值,单位:分
*/
private Integer originPriceMax;
/**
* 商品数组
*
* JSON 格式,数组,每个元素为 {@link ItemVO}
*/
private String items;
/**
* 优惠价格展示
*
* false-买家浏览商品详情页时,不能看到套餐优惠价格
* true-买家浏览商品详情页时,可以看到套餐优惠价格
*/
private Boolean isShowPreference;
  • price ,套餐价格。
  • originPriceMin / originPriceMax ,商品原价。因为优惠套餐活动期间,商品不能修改价格,所以比较方便冗余。
  • items ,商品数组(最多 5 个元素)。JSON 格式,每个元素为 ItemVO ,代码如下:

    /**
    * 商品编号
    */
    private Integer itemId;
    /**
    * 商品 SKU 编号数组
    */
    private List<Integer> skuIds;
  • isShowPreference ,优惠价格展示。

4. API

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

666. 彩蛋

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

总访客数 && 总访问量