Как система авиакомпаний не позволяет двум пользователям одновременно бронировать одно и то же место? - PullRequest
0 голосов
/ 18 октября 2019

Если два пользователя попытаются забронировать одно и то же место в одно и то же время, удастся только одномуКак это достигается? Я читал о блокировке, но, пожалуйста, расскажите подробнее, как этого можно достичьБлокирует код (синхронизированное ключевое слово) или блокирует строки базы данных или ограничивает базу данных или что-то еще?

1 Ответ

0 голосов
/ 18 октября 2019

Прежде всего, для двух человек почти невозможно забронировать одновременно. Даже когда они нажимают на кнопку бронирования в одно и то же время, они приходят на сервер в разные моменты времени (из-за связи, расстояния, ...).

Так что это событие крайне маловероятно. Одним из решений будет добавление «бронирования», как только кто-то нажмет на место и начнет процесс бронирования. Это не позволяет другим пользователям бронировать одно и то же место, пока кто-то его бронирует. Если человек не забронировал место, вы можете просто «разблокировать» его снова.

Eventbrite , например, использует аналогичную систему. Они забронируют вам билет, как только вы нажмете кнопку get ticket. Это гарантирует, что никто не захватит ваш билет, когда вы заполните свои данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...