各位CSDN的朋友:
    
      最近需要用最快的时间开发一套关于“抽奖”的系统,其中号码段是7位的,数据量至少超百万,需要抽出一个奖号则该奖号不可再继续抽奖,但是要保证百万数据的公平性,且要求每抽出一个号码的时间在2秒之内,我也自己想了一些方案,实施起来都不太理想,不知有没有了解或开发过类似功能的朋友给点技术之处,小弟将不胜感激。先在此谢过了。分不够的话再加。也可以直接联系我: QQ:20291198   Email: [email protected]    
     先在此谢过各位了!!! 

解决方案 »

  1.   

    用企业级数据库,如 MS SQL 或 Oracle。
      

  2.   

    先存入数据库,抽过的置为已抽,不参与select即可倒是如何取你需要有个随机算法。
      

  3.   


    我认为库里有个ID主键.在前台你只需要进行随机提取id最小与最大之间的数.当然前面的数字变化是假的.当点确定的时候再从数据库里取随机ID号的那个,如果已抽过奖,测下一个.如果是最后一个ID也已抽过,那就是第一个
      

  4.   

    现在就是这个 主键 的问题,这个系统现在好在是准备各个站点录入了数据之后(用access),然后将其数据统一汇总到抽奖系统的SQL2005数据库中,现在能如何最好的让其将各个站点的access数据一起汇总时,自动生成一套唯一的打乱的数字为主键呢?
      

  5.   

    现在能如何最好的让其将各个站点的access数据一起汇总时,自动生成一套唯一的打乱的数字为主键呢?
    汇总时写个程序插入进来.在你的sql2005表里已有主键和标识例
      

  6.   

    数据库设计主键索引提高查询速度,
    随机的抽取 可用ran。
    各个站点统一抽奖,还是同时抽奖。这就要考虑数据同步问题和锁机制
    抽奖一次就需要提高查询速度通过使用多线程分布处理
      

  7.   

    简单啊,存入数据库,排个续。只要找0-count的随机数就好了