微服务学习系列11:带过期时间的积分系统表设计

系列文章目录


目录

系列文章目录

前言

一、积分记录表 score_record

二、积分可用表score_usable 设计

三、场景模拟

2023-04-20当天记录

总结


前言

在积分系统中,用户的积分使用规则一般会加上过期时间,提高用户的使用频率。


一、积分记录表 score_record

此表对应的是业务操作引起的积分变化记录

字段名 类型 长度 说明
id BIGINT 20 主键ID
type smallint 11 积分记录类型
value INT 11 积分值
action TINYINT 2 动作 1: 增加  2:扣减
expire_time DATETIME 3 过期时间
reason VARCHAR 128 积分增减原因
user_id BIGINT 20 用户ID
create_time DATETIME CURRENT_TIMESTAMP  创建时间
deleted TINYINT 2 删除标记

二、积分可用表score_usable 设计

此表对应的是可用的积分记录,当前积分根据此表值计算得出

字段名 类型 长度 说明
id BIGINT 20 主键
value INT 11 积分值
expire_time DATETIME 3 过期时间
user_id BIGINT 20 用户ID
create_time DATETIME CURRENT_TIMESTAMP 创建时间
deleted TINYINT 2 删除标记

三、场景模拟

2023-04-20当天记录

某用户积分记录表如下

主键ID user_id 积分值value action 过期时间 创建时间 积分记录类型
1 1 50 1 2023-04-25 2023-04-20 1  扫码获取
2 1 50 1 2023-04-27 2023-04-20 1  扫码获取
3 1 100 1 2023-04-27 2023-04-20 2  活动获取
4 1 20 2 2023-04-20 2023-04-20 3  积分兑换扣减

可用积分表

主键ID user_id 可用积分值 过期时间 创建时间 deleted
1 1 30 2023-04-25 2023-04-20 未删除
2 1 150 2023-04-27 2023-04-20 未删除

总结

  • 积分优先扣除最早过期的且小面值的积分

  • 每天需要定时扫码可用积分表,将过期积分删除,并在积分记录表标注好过期记录以及扣减积分详情表记录扣减值

  • 积分总额可直接根据可用积分值计算(即使过期积分没即使删除,也可以通过计算过滤来实现)

     参考:有过期时间的积分系统表设计 - 简书

会员体系中,积分过期的设计方案 - Funcy1122的个人空间 - OSCHINA - 中文开源技术交流社区

猜你喜欢

转载自blog.csdn.net/yangyanping20108/article/details/130405293