Подписаться
Опубликовано

Несколько дней назад мы разбирали, почему...

Автор
  • Имя
    Максим | Системный анализ
    Telegram

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

Типовые случаи применения триггеров: Автоматический журнал изменений: кто, когда и что поменял в важной таблице Проверка хитрых условий, которые нельзя задать обычными CHECK или UNIQUE. Например, "нельзя добавить заказ на склад, который закрыт в этот день". Триггер проверит и выдаст ошибку, не дав записать Автозаполнение/пересчёт. Например, при смене цены триггер сам обновляет сумму в связанном счёте, чтобы данные не расходились Маскирование/шифрование. Например, при вставке номера паспорта триггер сам превращает его в хеш Безопасность. Например, запретить удалять таблицы Какие альтернативы нужно обязательно рассмотреть перед тем, как использовать триггеры: ⚖ Прикладной уровень: валидация и бизнес-логика в коде, перед записью ⚖ Хранимые процедуры
Хранимая процедура - это предварительно скомпилированный набор SQL-операторов и процедурной логики (ветвления, циклы), который хранится на сервере БД и вызывается отдельно, по имени. Она может принимать параметры и возвращать результаты. Дает преимущество в производительности, отладке и безопасности (закрывая прямой доступ к таблицам)
⚖ Представления (view) с правилами ⚖ Констрейнты (PK, FK, UNIQUE, CHECK, EXCLUDE): они быстрее, предсказуемее, параллельнее Если без триггера не обойтись: Триггеры должны использоваться строго для контроля целостности данных (например, в кейсе, когда сумма долей не должна превышать 1, или нужна проверка на пересекающиеся интервалы дат) Триггер не должен менять данные, иначе сразу появляются долгие блокировки и deadlock'и Триггер не должен управлять транзакцией: такую логику невозможно отладить Обязательно ведите в документации общий граф вызовов триггеров, чтобы не получить сюрприз на проде под большой нагрузкой

@maximbelovmentor

Максим | Системный анализ
349 подписчиков
59 постов
Как войти в IT через системный анализ и получить оффер от 270к+. Опыт Senior аналитика из топ-банков. Разборы, практика, собесы, техника мышления аналитика. Бесплатная консультация - в закрепе.

Свежие посты

Опубликовано

Застрял на задаче или идешь на собес?

Застрял на задаче или идешь на собес? Рассказываю, как за один созвон подтянуть харды, вытянуть сложный проект и понять, как повысить грейд 🎧☝️ Пиши
Опубликовано

Как аналитику использовать CJM?

Как аналитику использовать CJM?Customer Journey Map (CJM) принято считать инструментом продакт-менеджеров. Но и для аналитика это не "картинка с...
Опубликовано

Зачем аналитику UX?

Зачем аналитику UX?Многие думают, что UX нужен только дизайнерам. Но что если нырнуть чуть глубже?UX расшифровывается как user experience...
Опубликовано

🔠🔠🔠 🔠🔠🔠🔠🔠

«Сделал БД за минуту через нейронку» Звучит неплохо. А потом тебе на ревью объяснять, почему именно такая схема. В видео разобрал на примере, как...