Просто есть отдельная таблица, в которой хранятся все текущие бронирования.Например:
**Reservations**
UserID
TicketID
ExpiryDate
Это не будет зависеть от сеансов.Вам даже не нужно удалять просроченные записи, когда новый клиент запрашивает билет и находит все места, которые доступны там, где их нет, в таблице резервирований, где срок действия> сейчас.события и тому подобное, будь проще.