标签:count 抽奖 lottery 表格 次数 系统 用户 简易
抽奖系统
ERD design for a simple lottery system
实现功能
用户抽奖
限制抽奖次数
限制1
对每天,每周,每月,每年,终身对应的次数进行限制
实现方案:
通过设计的 count_date 与 count_limit 表格进行是否有抽奖资格的限制。
思路:
1.通过 user_id 普通查找 count_limit 表格,得到该用户每天,每周,每月,每年,终身限制的次数
** 开始事务 **
2.通过 user_id 使用悲观锁查找 count_date 表, 得到用户在该天,该周,该月,该年,终身以抽奖的次数
3.通过前两步得到的值进行判断用户是否有资格抽奖
- 如果可以抽奖,进行抽奖逻辑,
- 如果中奖,更新 count_date, record表格
- 如果没中间,更新 count_date 表格
- 如果不能抽奖,告诉用户抽奖次数已用完。
** 结束事务 **
4.在每天凌晨,每周最后一条凌晨,每月最后一天凌晨,每年最后一天凌晨更新 count_date 表格中的累计抽奖次数数据
限制2
对用户参与过的所有抽奖活动总和进行限制
实现方案:
通过设计的 count_lottery 与 count_limit 表格进行是否有抽奖资格的限制。
思路:
1.通过 user_id 普通查找 count_limit 表格,得到该用户参加所有抽奖活动总次数的限制值
** 开始事务 **
2.通过 user_id 使用悲观锁查找 count_lottery 表, 得到该用户参加的所有抽奖活动各自次数,计算出参加抽奖活动的总次数
3.通过前两步得到的值进行判断用户是否有资格抽奖
- 如果可以抽奖,进行抽奖逻辑,
- 如果中奖,更新 count_lottery, record表格
- 如果没中奖,更新 count_lottery 表格
- 如果不能抽奖,告诉用户抽奖次数已用完。
** 结束事务 **
参考
标签:count,抽奖,lottery,表格,次数,系统,用户,简易 来源: https://blog.csdn.net/EJoft/article/details/111938748
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。