Является ли это подходящим проектом базы данных, если я хочу провести аудит моей таблицы? - PullRequest
0 голосов
/ 21 сентября 2018

Я впервые создаю журнал аудита для приложения PoS WPF, и мне было интересно, как именно я внедряю систему аудита, потому что кажется, что у каждого варианта есть свои плюсы и минусы.Пока я не читал многочисленные статьи / темы, я сузил несколько распространенных методов ведения журналов аудита:

1.Триггеры - К сожалению, из-за характера моего приложения я не могу использовать триггеры, поскольку у него нет возможности узнать, какой пользователь выполнил действие.Поэтому вместо этого я создал хранимую процедуру, которая будет обрабатывать вставку клиента вместе со вставкой журнала клиента и ее сведениями.Customer_Id будет предоставлен приложением при использовании хранимой процедуры.

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

3.Используйте отдельную базу данных для журнала / 4. Внешние ключи - Вероятно, это моя главная проблема, если я решу использовать отдельную базу данных для таблицы аудита, то я не смогу настроить внешние ключи для вовлеченного клиента и сотрудника..

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

https://ibb.co/dheaNK

Вот несколько полезных сведений:

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

  2. Количество клиентов будет меньше 1000.

  3. Количество штатных сотрудников составит 3.

  4. Количество администраторов составит 2.

1 Ответ

0 голосов
/ 21 сентября 2018

Вы можете включить Сбор данных изменений CDC в базе данных SQL Server для конкретной таблицы. Это позволит вам собирать все изменения данных в таблице базы данных, зарегистрированной в специальных таблицах.Вы также можете обратиться к официальным документам тоже

Ниже приведен список команд DML и того, как изменения данных регистрируются в таблице CDC, созданной для таблицы исходной базы данных

enter image description here

Что хорошего в CDC, так это то, что он поставляется по умолчанию с SQL Server, и вам не нужно ничего делать для ведения журнала.Единственное требование - агент SQL Server должен быть запущен, чтобы изменения могли быть отражены в таблице журнала.

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