В настоящее время я играю с идеей иметь таблицы истории для некоторых моих таблиц в моей базе данных. В основном у меня есть основная таблица и копия этой таблицы с измененной датой и столбцом действий для хранения того, какое действие было выполнено, например, "Обновить", "Удалить" и "Вставить".
До сих пор я могу думать о трех разных местах, которые вы можете использовать в работе таблицы истории.
- Триггеры в главной таблице для обновления, вставки и удаления. (Базы данных)
- Сохраненные процедуры. (Базы данных)
- Уровень приложения. (Приложение)
Мой главный вопрос: какие плюсы, минусы и gotchas выполняют работу в каждом из этих слоев.
Одно из преимуществ, которое я могу придумать с помощью метода триггеров, заключается в том, что целостность всегда поддерживается независимо от того, какая программа имплементируется в верхней части базы данных.