Сохранять историю изменений таблицы БД через app или триггер?

Есть табличка
CREATE TABLE "user" (
  ...
  "name" text,
  "last_update" timestamptz,
  ...
);

И есть табличка для хранения истории изменений предыдущей:
CREATE TABLE "user_history" (
  ...
  "name" text,
  "update" timestamptz,
  ...
);

Вопрос такой: как лучше (правильней) организовать сохранение истории в user_history при изменении user - на уровне приложения (пишу на python) или триггером (юзаю Postgres)?
Что порекомендуете? Какие +/- у обоих вариантов?
  • Вопрос задан
  • 153 просмотра
Решения вопроса 2
yellow79
@yellow79
Senior Software Engineer
Конечно же триггер. Реализация на уровне app плоха тем, что любое другое ваше app, которое возможно появится в будущем, должно будет реализовать эту фичу. Зайдя "руками" в базу и изменив данные о пользователях у вас не останется истории. А вот использование триггеров решает это
Ответ написан
ИМХО зависит от того что вам нужно, понадобиться в будущем.
Триггер быстрее и проще.
В приложении можно будет сделать довольно сложную логику.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы