Практически любая современная информационная система работает с базами данных где хранит данные.
Сохранность данных обеспечивается созданием резервных копий, но довольно часто возникают вопросы:
- когда и кем была создана запись?
- кто изменил значение поля в таблице?
- кто удалил запись?
- как отменить действия?
Далеко не каждая система позволяет просмотреть все изменения всех полей в таблице, а зачастую включение логирования действий пользователей сильно затормаживает работу систему и от него отказываются.
Для решения данных задач нами разработна программа trgEM_JRN.
Программа написана на C# с использованием FrameWork XAF.
Основные преимущества:
- работает на любой СУБД
- не замедляет работу основной системы
- отслеживает изменения всех полей и таблиц (список таблиц определяется конкретными задачами)
Создается БД для журналирования, находящаяся «рядом» с основной, в ней создаются таблицы для ведения журнала.
Программа автоматически считывает структуру всех таблиц в исходной БД, определяет ключевые поля и создает триггеры на insert/update/delete в зависимости от указанных настроек. Также учитывается нюансы платформ, например, в XAF есть удаление и логическое удаление объекта.
Пример настройки журнализации таблиц:
Пример журнала:
В каждую запись можно зайти и посмотреть, что именно было изменено (измененные поля подсвечиваются красным):
Если по каким то причинам структура данных в исходной БД меняется, то в программе можно проверить структуру таблиц и пересоздать их при необходимости, при этом данные будут перенесены в новую структуру.
Чтобы не заходить в каждую запись для определения, что же именно было изменено, реализован механизм поиска записей по условиям.
Также реализован механизм отмены действий пользователей, однако тут надо учитывать особенности исходной системы и очень внимательно выполнять данные действие.