Лучшие практики отслеживания истории данных - PullRequest
4 голосов
/ 12 июля 2011

нам нужно отслеживать изменения данных за определенное время. Нам нужен совет о том, как решить эту задачу. У нас есть две улицы, чтобы следовать в нашем разуме. 1) Создайте таблицу со следующими записями: идентификатор пользователя, дата модификации, имя таблицы, имя поля, тип поля, значение поля. Таким образом, мы будем отслеживать с помощью триггера.

2) Добавьте поле состояния на всю таблицу, которая нам нужна для отслеживания истории, которая называется Статус. Это поле будет иметь следующие значения: I = вставлено - D = удалено - M = изменено с относительной датой изменения. Таким образом, мы всегда можем узнать последнюю действительную строку и все предыдущие изменения данных 3) Это у тебя в голове  Что вы предлагаете?

1 Ответ

3 голосов
/ 12 июля 2011

Я делал это несколько раз в PostgreSQL, используя отдельную схему и триггеры «history».

Таблицы в схеме «history» идентичны реальным таблицам, но с добавлением 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);

После этого выдолжен создать триггер, который будет вставлять в таблицу истории при вставке, обновлении, удалении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...