ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

简易抽奖系统

2020-12-29 23:01:32  阅读:268  来源: 互联网

标签:count 抽奖 lottery 表格 次数 系统 用户 简易


抽奖系统

ERD design for a simple lottery system

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 表格
  • 如果不能抽奖,告诉用户抽奖次数已用完。
    ** 结束事务 **

参考

  1. introduction of database
  2. introduction of ERD
  3. convert ERD to relation

标签:count,抽奖,lottery,表格,次数,系统,用户,简易
来源: https://blog.csdn.net/EJoft/article/details/111938748

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有