В схеме таблицы задайте для баланса NOT NULL и ограничение CHECK (balance >= 0).
Например, у меня есть таблица «Кошелёк» с целочисленным балансом — куда я пропишу правило, что баланс не должен быть отрицательным?
В схеме таблицы задайте для баланса NOT NULL и ограничение CHECK (balance >= 0).
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
В схеме таблицы задайте для баланса NOT NULL и ограничение CHECK (balance >= 0).
Списание выполняйте атомарным обновлением с условием достаточного остатка и проверяйте число изменённых строк. Одной предварительной проверки баланса в приложении недостаточно из-за конкурирующих запросов. Ограничения PostgreSQL.