Практически любая современная информационная система работает с базами данных где хранит данные.

Сохранность данных обеспечивается созданием резервных копий, но довольно часто возникают вопросы:

  • когда и кем была создана запись?
  • кто изменил значение поля в таблице?
  • кто удалил запись?
  • как отменить действия?

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

Для решения данных задач нами разработна программа trgEM_JRN.

Программа написана на C# с использованием FrameWork XAF.

Основные преимущества:

  • работает на любой СУБД
  • не замедляет работу основной системы
  • отслеживает изменения всех полей и таблиц (список таблиц определяется конкретными задачами)

Создается БД для журналирования, находящаяся «рядом» с основной, в ней создаются таблицы для ведения журнала.

Программа автоматически считывает структуру всех таблиц в исходной БД, определяет ключевые поля и создает триггеры на insert/update/delete в зависимости от указанных настроек. Также учитывается нюансы платформ, например, в XAF есть удаление и логическое удаление объекта.

Пример настройки журнализации таблиц:

Пример журнала:

В каждую запись можно зайти и посмотреть, что именно было изменено (измененные поля подсвечиваются красным):

Если по каким то причинам структура данных в исходной БД меняется, то в программе можно проверить структуру таблиц и пересоздать их при необходимости, при этом данные будут перенесены в новую структуру.

Чтобы не заходить в каждую запись для определения, что же именно было изменено, реализован механизм поиска записей по условиям.

Также реализован механизм отмены действий пользователей, однако тут надо учитывать особенности исходной системы и очень внимательно выполнять данные действие.