Да, в общем, не вдаваясь в подробности: PHP-скрипты выполняются одновременно для каждого запроса отдельно .
Чтобы убедиться, что упомянутая вами проблема не возникает, вам, вероятно, следует реализовать функцию вашей системы управления базами данных, которая называется " транзакций ". Таким образом, если вы что-то делаете на уровне базы данных и в конце обнаружите, что резервирование не может быть выполнено, все действия, выполненные в транзакции, будут отменены.
В дополнение к транзакциям вам следует разработать приложение, помня о том, что упомянутая вами проблема может возникнуть . Таким образом, вы должны разработать свою базу данных и приложение таким образом, чтобы вы: 1) максимально сократили время между «проверкой» и «резервированием», 2) прекращением действия, если вы не можете сделать резервирование, и, наконец, - в случае крайней необходимости. - 3) определение того, какая оговорка возникла первой, а какая должна быть отозвана.
Другая идея, попадающая в категорию " дизайн вашего приложения ", может быть чем-то, что мы могли бы назвать " временное резервирование ". Это означает, что вы можете временно (например, на пару секунд) заблокировать вашу бронь, если вы собираетесь сделать бронь. После этого вы можете проверить, действительно ли вы можете сделать это бронирование и либо превратить его в постоянное бронирование, либо просто отменить его. Я полагаю, что некоторые системы также делают более длительные временные резервирования сразу после того, как клиент начинает процесс резервирования своих мест. Затем, если процесс успешен, резервирование изменяется на постоянное, но если некоторое определенное количество времени проходит без успеха, резервирование может быть просто отменено, позволяя другому клиенту начать процесс.