Alex_Wells
@Alex_Wells
PHP/TS/Kotlin developer

Каковы шансы фейла sql запроса?

Здравствуйте. Потихоньку развиваю свои навыки. Пока не сильно углублялся в исходники этой темы, но использую транзакции из laravel для связок важных sql запросов.

Например, у юзера на сайте есть баланс. При клике на "купить" я отнимаю у него баланс и добавляю купленный товар в транзакции. Если один из запросов не проходит - юзер получает ошибку, мол, повторите еще раз.

Второй пример: при клике на "продать через 30 минут" я ставлю задачу в очередь с указанием айди товара. Тут чуть сложнее: если sql запрос про продажу предмета фейлится, мне нужно сказать ларавелю, что задача failed. При этом, мне нужно возвратить все остальные изменения, не касающиеся базы данных вручную.

А теперь вопрос: есть ли вообще шанс юзеру получить подобную ошибку и имеет ли смысл писать логику для обработки фейла запроса sql? Допустим, что живем в мире идеальной бизнес логики без ошибок в коде, но в обычном мире linux с обычным MySQL (otherSQL)

Заранее спасибо.
  • Вопрос задан
  • 240 просмотров
Решения вопроса 2
dimonchik2013
@dimonchik2013
Антон Цуцанский, нехороший человек
шансы есть

вообще, все что касается денег, должно быть инвариантно и транзакционно: либо произошло, либо нет (т.е. состояние осталось каким было)
Ответ написан
pezdatskiy
@pezdatskiy
Предприниматель, по выходным- программист
Когда я делал систему начисления платежей за работу- закладывал логику отката операций. Иногда на этапе тестирования дыры возникают в настолько неожиданных местах... поэтому в "идеальной бизнес логике" нужно связывать все эти сущности- транзакции, списания и прочее. Сперва проверка на возможность операции, после выполнение- успешность выполнения. Если нет- откат, ошибка. Бывает всякое)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы