Я работаю над разработкой онлайнового веб-приложения на PHP. Система касается системы бронирования мест для туристической компании. У меня есть форма бронирования, содержащая поле выбора, в котором есть список кода тура. Всякий раз, когда пользователь выбирает код тура, Ajax-запрос получает доступное количество мест для этого кода тура. После этого пользователь выбирает количество мест, которые он запрашивает, чтобы забронировать и заполнить данные о таком количестве пассажиров в форме и представить форму.Логический поток, необходимый для онлайн-бронирования в режиме реального времени в PHP?
В этой системе онлайн может возникнуть ситуация, следующим образом:
User1 и user2 вошел в попытке заказать места для tourA. Для тура доступны только 10 мест. User1 хочет забронировать 7 мест, а user2 хочет забронировать 5 мест. Оба нажимают ссылку на форму бронирования, и оба получают номер доступных мест как 10. Оба начали заполнять форму, так как форма немного длинна. Оба берут другое время, чтобы заполнить форму и отправить в соответствии с тем, что набрали скорость. Оба пользователя думают, что они получат необходимое количество зарезервированных мест. Но обе подают форму с небольшой разницей времени, которую она сама считает, что пользователь сначала подаст заявку, а другой пользователь получит сообщение об ошибке, что соответствующее количество мест недоступно. Итак, здесь userA путают, что, поскольку он получил сообщение о том, что число мест является availebe теперь после отправки формы, он получает сообщение, требуется количество мест, которые недоступны.
Как я мог избежать такого состояния, как указано выше? Мне нужен логический поток за системой бронирования в реальном времени. Кто-нибудь, пожалуйста, объясните мне это и как достичь этого в php.
Я думаю о том, как только пользователь выбирает количество мест; используя ajax, я обновляю поле в таблице базы данных, которое поддерживает это доступное количество мест и записывает это количество мест для этой сессии. Но здесь может возникнуть кодификация, например, если пользователь выбирает места и начинает заполнять форму, но по какой-либо причине, если он не отправляет форму бронирования, проблема возникает из-за того, что мы удалили необходимое количество мест из db, но процедура бронирования не завершено пользователем. Итак, как вернуть это обратно, а также обновить таблицу, а затем другие пользователи, которые хотят забронировать места, которые им нравятся, что количество мест недоступно, и они исчезнут и не будут проверять его снова. Из-за этого бизнес туристической компании может снизиться.
Обратите внимание, что каждый пользователь должен войти в систему для бронирования мест.
Друзья, вы можете найти этот вопрос как домашнюю работу, но здесь у меня нет твердого логического решения. Прошу вас, пожалуйста, объясните мне логический поток системы, чтобы преодолеть такую ситуацию. Если у кого-нибудь есть простой пример кода в PHP для этого для справки, он также будет полезен для меня.
Ожидаемый положительный ответ
Thank you!
Благодарю вас, сэр! для вашего ответа и решений. У меня есть несколько запросов, поэтому я прошу вас объяснить мне это. В соответствии с моим пониманием, если я пойду в соответствии с решением, если пользователь зарезервирует ресурс, но не завершает процесс бронирования, то как может зарезервированный ресурс получить выпуск и по каким критериям он должен быть выпущен? –