Я работаю над приложением, которое будет иметь таблицу финансовых транзакций, связанных с пользователями, с колонкой, показывающей изменение их общего баланса. Есть ли способ добавить ограничение, чтобы таблица не принимала транзакцию, которая привела бы к тому, что общий баланс пользователя был бы меньше 0, без необходимости блокировки всей таблицы?
Если бы я должен был сохранить рассчитанный баланс отдельно, я думаю, что я мог бы достичь этого ограничения, просто заблокировав эту строку в таблице сальдо как часть транзакции, которая одновременно добавляет новую финансовую транзакцию и обновляет баланс, но я думаю, что эта «вычисленная» таблица хмурится после того, как оно может выйти за рамки c с фактическим источником истины. Есть ли способ избежать такого подхода?