2010-12-09 20 views
2

我们开发了一个在线测验,用户可以注册一个团队参加测验。网页同时插入

在asp中有一个检查来查看该团队名是否已经提交,如果有,则会产生一个错误。

我们发现一个问题,如果两个团队在同一时间完全相同的名称注册,两个团队都注册。虽然这是不太可能的,但我们想知道应该用什么方法来克服这个问题。

我们使用mySql作为数据库,如果这有什么不同。

感谢您的任何指导。

回答

0

不知道两个团队可以在同一时间注册 - 即使请求同时提交(下至纳秒),您的事务语义仍应保证其中的一个从数据库的“第一个”点视图。

1

不要担心,这绝不会发生。

数据库足够智能并处理并发isuuses。

如果您在数据库上同时运行数据库查询以注册团队和另一个团队注册,则在数据库级别,第一个查询(当它发送到数据库时)成功,第二个查询失败并出现一个您应该注意的错误的。如果注册需要的操作不仅仅是一个表上的简单插入,那么您应该在查询/存储过程中使用事务对象。

1

您可以将名称列设置为唯一,并且数据库将在第二次插入时引发错误。如果你想用代码来做,它会更复杂。