Приложение для бронирования мероприятий ASP.NET — проблема с подсчетом мест

Я собираюсь создать очень простое онлайн-приложение для бронирования мероприятий, и в настоящее время у меня есть 3 таблицы:

Пользователь

  • ПК_UserID
  • Имя пользователя

Событие

  • PK_EventID
  • Название события
  • Описание события
  • EventStartDate
  • EventEndDate
  • Места в наличии

Забронированные события

  • ID
  • FK_UserID
  • FK_EventID

Есть ли у вас опыт работы с SeatsAvailable? Я имею в виду, если для параметра SeatsAvailable установлено значение 5 и есть 5 пользователей онлайн, которые хотят забронировать мероприятие. И какой-то пользователь начал заполнять форму, потом передумал. Тогда места в базе могут просто протечь. Я думал о сеансах - например, ограничить каждого пользователя 5 минутами для завершения бронирования, но я действительно не знаю, хорошая ли это идея. У Вас есть какие-то предложения?


person ilkin    schedule 26.10.2010    source источник


Ответы (2)


Я бы тоже использовал ваш способ, но я бы сбрасывал тайм-аут каждый раз, когда выполняется бронирование (т.е. новая страница). Я знаю по опыту, что вам иногда приходится искать что-то или подобное, и я действительно ненавижу время ожидания страниц в этом случае. Вы должны быть в порядке с тайм-аутом.

person Femaref    schedule 26.10.2010

Я действительно не вижу вашей проблемы.

SeatsAvailable — это общее количество разрешенных мест, а количество забронированных пользователей — сумма строк в BookedEvents.

в вашей процедуре ввода пользователя в BookedEvents вы должны прочитать количество BookedEvents и SeatsAvailable в транзакции, если событие заполнено, то пользователи получают сообщение о том, что они слишком поздно

я что-то упускаю?

person TimC    schedule 26.10.2010