Как стать автором
Обновить

Комментарии 6

кажется они изобрели SCD Type2

Так там тоже всё на триггерах)

В psql-hackers когда-то было большое обсуждение патча с добавлением temporal tables согласно ANSI-стандарта. В итоге решили забить, т.к. решили, что это добавит много проблем при редактировании таблиц (удаление/добавление/смена типа поля) при относительно небольшой пользе. К тому же триггеры с таким функционалом каждый может написать под себя, не ограничиваясь стандартным функционалом и синтаксисом.

Вот как раз два примера кастомных реализаций на триггерах)

Данная реализация скорее похожа на аудит, и не похожа на SCD2. Если точнее это SCD4. Трудоемкость получить состояние на определенное время у SCD4 выше чем у SCD2. Насколько я знаю есть несколько расширений для аудита, почему не использовать их?

Отдельный вопрос производительность: насколько использование триггеров замедляет скорость вставки? Проводилось ли тестирование? Какие текущие объемы и нагрузка?

Так же хранения истории ставит вопрос управление жизнью информации, Например, партиционирование и выведение старой информации из системы (удаление и архивирование), тут я этого не вижу.

Можно подойти с другой стороны и сделать историю основной таблицей и только добавлять в неё записи, а для данных использовать view

Event sourcing тоже хорошо подходит для подобных задач, но решение на триггерах тоже имеет смысл в некоторых частных случаях

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории