В настоящее время я работаю над проектом по созданию сайта онлайн-тикетов. У меня есть таблица билетов, которая включает в себя все купленные билеты, связанные с типом и событием.
Проблема, с которой я сталкиваюсь, заключается в том, что если у события есть распределение, скажем, 500 билетов, и у меня есть несколько человек, пытающихся чтобы купить билеты, как мне остановить условия гонки, когда я перепродал за пределы емкости.
Это пример сценария:
498 проданных билетов
Попытка пользователя 1 и пользователя 2 купить два билета каждый одновременно: Пользователь 1 - сайт проверяет доступные билеты 498 продано, 2 доступно Пользователь 2 - сайт проверяет доступные билеты 498 продано, 2 доступно Пользователь 1 - добавляет 2 строки для купленных билетов, 500 продано Пользователь 2 - добавляет 2 строки для купленных билетов, 502 продано
Я знаю, что могу перепроверить количество проданных билетов, и если их больше 500, вынуть ряды обратно ... но это не похоже на элегантное решение.
Я использую ядро Entity Framework с. net базовыми страницами бритвы для разработки сайта.
Заранее спасибо,
Мэтт