У Вас механизм работы следующий:
1) какие-то данные присылаются на обработку скрипту.
2) скрипт проверяет ситаксическую правильность присланных на вход данных
3.1) если данные неправильны, процесс прекращается
3.2) если правильны, процесс продолжается
4) скрипт проверяет не находятся ли уже в бд присланные данные
5.1) если уже есть, процесс прекращается
5.2) если нет, процесс продолжается
6) произодится запись данных в базу
Допустим Вы отсылаете данные с двух разных компов одинаковые данные почти одновременно. Тогда описанный Вами косяк может теоретически произойти только в том случае, если данные 1 прошли пункт 4), но еще не дошли до 6), а данные 2 в этот момент проходят через пункт 4) и соответственно получают информацию, которая станет через некоторое время ложной...
Однако - это только теоретически... Если, конечно, в Вашем скрипте между пунктом 4) и 6) не стоит какая-нибудь ОЧЕНЬ ресурсоемкая операция. Однако почти у всех и всегда они располагаются практически друг за другом
Критический промежуток времени будет ну ОЧЕНЬ маленьким. И не важно какие данные были присланы и сколько раз пользователь нажал кнопку Отправить.
Поэтому я бы все-таки еще раз проверил бы пункты 4) 5) и 6)...
|