现在要做一个报名系统,在某个时间点开启报名,会有数千人同时报名,名额有限,如果我先判断报名人数,再报名,万一这两次查询中间有人报名了,人数又刚好够了,那怎么呢?求思路

解决方案 »

  1.   

    锁表,一个人报名成功,修改剩余名额时其他人不能报名,只有剩余名额更新完成后,其他人才能报名,这是重新检索剩余名额,可以防止重复。
    可以看一看read commited的说明,sqlserver默认就是read commited
    另外如果要求不高使用application来存剩余名额也可以
      

  2.   

    application 存个 LIST<T> 类型的LIST  如果有人报名的话先判断LIST的COUNT是不是小于1000,如果大于1000的话 就给提示 不能报名。 然后 ,有这个就把这个LIST里面的信息插入数据库中呗。