2 flow shadow Flow_Shadow 于 2014.02.07 11:23 提问

抽奖系统数据库怎样设计

RT,我想做一个抽奖的B/S,我是这样想的:用户提交信息后存入数据库,抽奖的时候再从数据库中读取,通过一些算法抽出来,但是,怎样避免重复中奖,SQL语句怎样写,新手,请指教啊!

1个回答

bisubisu
bisubisu   2014.02.08 17:46

没做过抽奖的应用,我来说说我的想法!
1:需要搞清楚抽奖的时间范围?
I 是很多用户在短时间(如:1000用户在一分钟)来抽奖,还是长时间(如:1000用户在一小时)来抽奖,如果是短时间,需要控制好并发!
2:抽奖前需要设置好所有奖项,比如:一等奖,二等奖各多少名!还需要设置好共有多少人来参与抽奖,如果计划100人抽奖,所有的奖项将会在这100之中产生,如果临时增加抽奖人员,后面超过的人奖项如何分配,也需要考虑?

你提的问题:
1:抽奖的时候再从数据库中读取!
不建议这么做,如果并发大了,有可能数据库承受不了!
2:怎样避免重复中奖!
这个简单,把所有抽奖票的ID,抽奖号(随机生成的数,此处不能重复,如果抽奖号没有上10W,去重复不难)放入抽奖列表,每抽奖一次,删除抽奖列表里面的一个随机数,只要控制好并发,正常情况就不会重复!
3:中奖号码需要和抽奖号关联!

Flow_Shadow
Flow_Shadow 谢谢你的回答,我其实没有做那么复杂,很简单的一个,我从用户提交表中获取电话号码,从数据库中取出来存入一个集合中,个过JS控制,页面滚动,随机抽取,写入数据库,并把status设为1,下次抽的时候,只选status=0的,这样对吗
接近 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!