Я работаю над созданием кошелька, который будет иметь некоторые кредитные и дебетовые транзакции.
Схема БД:
При каждом запросе на дебет я проверяю, является ли сумма дебета меньше или равна общей суммесумма в моем кошельке.Общая сумма будет суммой всех кредитов и вычтет из нее сумму всех дебетов.Кредит будет работать нормально, так как я не сохраняю общую сумму в таблице, поэтому никаких условий гонки не произойдет.Но во время дебета мне нужно получить общую сумму и провести некоторые проверки, а затем создать новую запись дебета.
Одно из решений, которое мне пришло в голову, - это иметь блокировку кошелька для дебетов, т.е.когда приходит запрос на дебет, я блокирую его для сохранения в памяти, а когда приходит другой запрос на дебет, я проверяю блокировку.
Есть ли лучшее решение для этого.Мне пришло в голову другое решение - блокировка строк таблицы, но я не уверен, что смогу использовать это для своего случая.
Пожалуйста, помогите мне с лучшим и достойным решением для этого.Заранее спасибо.