智慧教务系统
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

3.0 KiB

赠品表设计文档

表结构说明

表名:gift

用途:存储系统中的赠品信息,包括赠课和代金券等赠品类型

字段说明

字段名 类型 默认值 说明
id int(11) AUTO_INCREMENT 赠品主键ID
gift_name varchar(255) '' 赠品名称
gift_type varchar(50) '' 赠品类型:course(赠课),voucher(代金券)
gift_time int(11) 0 赠送时间(时间戳)
giver_id int(11) 0 赠送来源人员ID
resource_id int(11) 0 赠品归属资源ID
order_id int(11) 0 赠品使用的订单ID(0表示未使用)
gift_status tinyint(4) 1 赠品状态:1=未使用,2=已使用,3=已过期,4=已作废
use_time int(11) 0 赠品使用时间(时间戳)
create_time int(11) 0 创建时间(时间戳)
update_time int(11) 0 更新时间(时间戳)
delete_time int(11) 0 删除时间(时间戳,0表示未删除)

索引设计

主键索引

  • PRIMARY KEY (id) - 主键索引,自动创建

普通索引

  1. IDX_gift_giver_id - 赠送人员索引

    • 用途:根据赠送人员ID查询赠品
    • 场景:统计某个人员赠送的所有赠品
  2. IDX_gift_resource_id - 资源ID索引

    • 用途:根据资源ID查询相关赠品
    • 场景:查询某个资源相关的所有赠品
  3. IDX_gift_order_id - 订单ID索引

    • 用途:根据订单ID查询使用的赠品
    • 场景:查询某个订单中使用了哪些赠品
  4. IDX_gift_status - 状态索引

    • 用途:根据赠品状态快速筛选
    • 场景:查询未使用、已使用、已过期等状态的赠品
  5. IDX_gift_type - 类型索引

    • 用途:根据赠品类型快速筛选
    • 场景:分别查询赠课或代金券
  6. IDX_gift_time - 赠送时间索引

    • 用途:根据赠送时间范围查询
    • 场景:统计某个时间段的赠品发放情况

业务逻辑说明

赠品状态流转

  1. 未使用(1)已使用(2):用户使用赠品时更新
  2. 未使用(1)已过期(3):系统定时任务检查过期
  3. 未使用(1)已作废(4):管理员手动作废
  4. 已使用(2):终态,不可再变更

关键业务场景

  1. 赠品发放:创建记录,设置 gift_status=1
  2. 赠品使用:更新 order_iduse_timegift_status=2
  3. 赠品过期:定时任务更新 gift_status=3
  4. 赠品作废:管理员操作更新 gift_status=4

性能优化建议

  1. 复合索引考虑

    • 如果经常按状态+类型查询,可考虑创建复合索引 (gift_status, gift_type)
    • 如果经常按时间范围+状态查询,可考虑创建复合索引 (gift_time, gift_status)
  2. 分区表考虑

    • 如果数据量很大,可考虑按时间分区
  3. 归档策略

    • 定期归档已删除或过期的赠品数据