领券次数的设计(from 深圳-小明)

image.png

需求

用户在某个活动中最多领取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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容