Блокировка билета на определенное время (система бронирования билетов на мероприятия)

Я изо всех сил пытаюсь придумать решение для системы бронирования билетов на мероприятия. Мне нужна идея, как заблокировать билет, добавленный в «корзину», чтобы он не мог быть забронирован другим клиентом.

Как это делается на других сайтах бронирования билетов, где билет резервируется, например, на 10 минут, а затем освобождается по истечении этого времени, когда транзакция не завершена. Запускать задание cron каждую минуту было бы нецелесообразно, не так ли?


person vault-boy    schedule 20.11.2012    source источник
comment
Это совершенно правильный вопрос. Не понимаю причину минуса.   -  person Sid    schedule 03.09.2014


Ответы (1)


Если вы сохраните время, когда билет должен быть разблокирован, а затем, когда кто-то захочет его забронировать, вам просто нужно посмотреть, прошло ли это время, это должно работать без каких-либо проблем или нагрузки на сервер.

Таким образом, в таблицу заявок вы добавляете поле datetime с именем «booked_until», сохраняете время, когда элемент будет разблокирован, и все готово!

person Naryl    schedule 20.11.2012
comment
Таким образом, вы имеете в виду изменение запроса БД, чтобы проверить, больше ли текущее время и дата, чем «booked_until», когда билет выбран другим клиентом. Если текущее значение даты и времени меньше, это означает, что билет все еще заблокирован. На самом деле звучит хорошо - person vault-boy; 20.11.2012