我们开发了一个在线测验,用户可以注册团队参加测验。
在asp中检查是否已提交该teamname,如果已提交,则会生成错误。
我们注意到如果两个团队在同一时间以相同名称注册,两个团队都已注册,则会出现问题。虽然这种可能性很小,但我们想知道应该用什么方法来解决这个问题。
如果有任何不同,我们使用mySql作为数据库。
感谢任何指导。
答案 0 :(得分:1)
不要担心这种情况永远不会发生。
数据库足够智能并处理并发问题。
如果您在数据库上运行查询以同时注册团队和另一个团队注册,则在数据库级别第一个查询(当它发送到数据库时)成功,第二个查询失败并出现错误,您应该注意。如果注册需要的操作不仅仅是对表的简单插入,那么您应该在查询/存储过程中使用事务对象。
答案 1 :(得分:1)
您可以将name列设置为唯一,并且数据库将在第二个插入上引发错误。如果你想在代码中这样做,那将会更复杂。
答案 2 :(得分:0)
不确定两个团队如何在同一时间注册 - 即使请求同时提交(低至纳秒),您的事务语义仍应保证其中一个从数据库的角度来看是“第一”