Лучшие практики отслеживания истории данных
Нам нужно отслеживать изменения данных в течение некоторого времени. Нам нужен совет о том, как решить эту задачу. У нас есть две улицы, чтобы следовать в нашем разуме. 1) Создайте таблицу со следующими записями: идентификатор пользователя, дата модификации, имя таблицы, имя поля, тип поля, значение поля. Таким образом, мы будем отслеживать с помощью триггера.
2) Добавьте поле состояния на всю таблицу, которая нам нужна для отслеживания истории, которая называется Статус. Это поле будет иметь следующие значения: I = вставлено - D = удалено - M = изменено с относительной датой изменения. Таким образом, мы всегда можем узнать последнюю действительную строку и все предыдущие модификации данных. 3) Это у вас на уме Что вы предлагаете?
1 ответ
Я делал это несколько раз на PostgreSQL, используя отдельную схему "история" и триггеры.
Таблицы в схеме "история" идентичны реальным таблицам, но с history_id
PK и отметка времени события добавлены. Таблицы из схемы "история" не имеют никаких ограничений. Также вам нужно создать поле для действия, если вам нужно также отслеживать удаление.
В postgreSQL вы можете легко создать такую таблицу, используя такие CREATE
заявление:
CREATE TABLE history.tbl AS
(history_id BIGSERIAL PRIMARY KEY,
event_time TIMESTAMP DEFAULT NOW(),
action CHAR(1),
LIKE public.tpl);
После этого вы должны создать триггер, который будет вставлять в таблицу истории при вставке, обновлении, удалении.