Я работаю над бэкендом игры. Игроки сначала покупают билеты, которые сохраняются в базе данных, затем играют и могут выиграть определенные призы. Каждый игрок может купить максимум 60 билетов.
Появилось новое требование, устанавливающее верхнюю границу общего количества билетов на игру – 10 000 билетов. Реализация будет включать добавление к конечной точке покупки теста, проверяющего, что общее количество купленных билетов в это время + количество билетов, требуемых для текущей покупки, меньше или равно максимальному количеству билетов для этой игры, чтобы покупка была завершена. быть принятым.
Проблема заключается в том, что при вычислении текущего количества купленных билетов с помощью count в таблице Tickets возвращаемое значение может быть устаревшим, поскольку в это время другие игроки могли приобрести билеты.
Возможное решение — заблокировать таблицу билетов во время покупки, но это может негативно сказаться на производительности и взаимодействии с пользователем. Пожалуйста, дайте мне знать, если у вас есть другая идея.