需求
用户在某个活动中最多领取N张优惠券。
每个活动中最多领取M张(优惠券发放总量)。
分析
当每一个用户领券时,实时计算当前用户可以领取的数量,查询量大。
如果提前计算好,每个用户当前优惠券数量。就可以在逻辑层判断出,用户是否可以领券。
解决方法
增加「领券记录表」,主要字段有:
字段 | 描述 |
---|---|
receive_code | 领券码。 receive_code = user_id + activity_id 或者 = user_id 或者 activity_id |
activity_id | 活动ID |
receive_count | 领券总数量 |
当每成功领取一张,receive_count 加 1。
其中 receive_code 是重点,根据不同情况设计不同的 receive_code。
- 记录每个用户在某个活动领券了多少张优惠券。 receive_code = user_id:activity_id
- 记录每个活动最多领取M张, receive_code = activity_id
若需求,同时对用户优惠券总量上限和活动上限,则领券是同时更新两条记录。
INSERT ON DUPLICATE KEY UPDATE
网友评论