Транзакция веб-сервера или триггер БД. - PullRequest
0 голосов
/ 08 апреля 2019

Я хотел бы спросить вас о ситуации, когда каждое значение двух таблиц должно быть изменено одновременно.

Существует два способа, описанных выше, транзакция веб-сервера, триггер БД.

Транзакция веб-сервера безопасна на 100%?Меня беспокоит ситуация, когда одно значение одной таблицы было изменено, а другое значение другой таблицы не изменилось.

Я думаю, что триггер БД безопаснее, чем транзакция веб-сервера, но я использую их оба из-забеспокоиться выше.

Также я хотел бы спросить вас о процедуре БД.Это предпочтительнее?Я предпочитаю использовать php коды и не использую их.

1 Ответ

2 голосов
/ 08 апреля 2019

Транзакции существуют для ТОЧНОГО решения проблемы, которую вы описываете.Либо все запросы в транзакции завершаются успешно, либо база данных откатывается, как будто ничего не происходит.

Хотя я уверен, что есть люди, которые не согласны со мной, я не фанат использования триггеров или хранимыхпроцедуры для создания программной логики.Не из-за безопасности, а потому, что триггеры становятся скрытым кодом, а не в вашей системе контроля версий (если вы не усердны с миграциями), добавляя логику в запрос, который вы не видите при чтении исходного кода.

А как насчет обработки ошибок?Что вы будете делать в случае сбоя триггера?

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

...