Мы внедряем новую систему, используя Java / Spring / Hibernate на PostgreSQL.Эта система должна сделать копию каждой записи, как только будет произведено изменение / удаление записи (ей) в таблицах.Позже, таблицы (таблицы) аудита будут запрашиваться отчетами для отображения данных пользователям.
Я планировал реализовать эту функцию аудита / управления версиями, имея триггер для таблиц, которыйкопия измененной строки (удаленная строка) «TO» ТАБЛИЦЫ с именем ENTITY_VERSIONS, которая будет иметь около 20 столбцов с именами col1, col2, col3, col4 и т. д., в которых будут храниться столбцы из приведенных выше таблиц; Однако проблема заключается в том, что , если существует более 1 таблицы для контроля версий и ТОЛЬКО 1 таблица TARGET (ENTITY_VERSIONS) для хранения всех версий таблиц, как я могу создать таблицу TARGET?
ИЛИ лучше, если для каждой таблицы, для которой требуется управление версиями, будет задана копия таблицы VERSION?
Будет бонусом, если некоторые указатели на код триггеров PostgreSQL (и связанных хранимых процедур)для реализации аудита / управления версиями можно поделиться.
PS: я посмотрел Предложения по реализации таблиц аудита в SQL Server? и вроде как ответ, за исключением того, что я НЕ знаю, какой тип должен использовать OldValueи NewValue будет?
PPS: Если в таблицах используются ПРОГРАММНЫЕ УДАЛЕНИЯ (фантомное удаление) вместо УДАЛЕННЫХ, удаляется ли какой-либо из ваших советов?