Нужен совет по передовому опыту:
Предположим, у меня есть объект Account с атрибутом limit. Каждый день может быть n платежей, с суммой их сумм вплоть до лимита счета. При создании нового платежа он проверяет, находятся ли его сумма + суммы других платежей за день в пределах лимита учетной записи, и либо сохраняет запись, либо отображает ошибку.
Теперь предположим, что у меня есть аккаунт с лимитом 100 $, и одновременно создаются два платежа по 99 $. Каждый будет делать выбор, видеть, что там ничего нет, и приступать к самосохранению, в результате чего будет сохранено всего 198 $.
Что бы вы сделали с этим? Я думал о том, чтобы установить блокировку записи в таблице платежей в начале транзакции, но это выглядит довольно жестко, поскольку я действительно беспокоюсь о том, чтобы не допустить, чтобы платежи, принадлежащие определенному аккаунту, не читались другими транзакциями. Есть ли другие варианты, лучшие способы справиться с этой ситуацией?