Таблица истории изменений - PullRequest
0 голосов
/ 10 ноября 2011

Я работаю на веб-сайте asp.net MVC 3, и мне нужно отслеживать любые изменения, внесенные в таблицу / сущность.Всякий раз, когда в представлении «Правка» что-то изменяется, список изменений будет отображаться с датой, изменения вносятся в столбцы под этим представлением «Правка».Нужно ли создавать другую таблицу с именем entityHistory или для этого нужно вставить еще одну запись в этой таблице?

Пожалуйста, предложите

Ответы [ 2 ]

0 голосов
/ 10 ноября 2011

Помимо параметров аудита, SQL Server теперь имеет функцию CDC (Change Data Capture in SQL2008), которая позволяет разработчикам отслеживать изменения данных в таблице SQL

Вы можете создать аналогичный механизм регистрации, используя триггеры (см. http://www.kodyaz.com/articles/sql-trigger-sql-server-trigger-example-to-log-changes-history.aspx для примера)

В следующей статье также можно найти расширенное решение для регистрации изменений данных, аналогичных CDC в SQL2005 http://www.kodyaz.com/articles/log-data-changes-using-change-data-capture-for-sql-server-2005.aspx

0 голосов
/ 10 ноября 2011

Зависит от того, что вы хотите сделать с историческими данными. Если вы хотите показать снимки записи или графа объектов, я обнаружил, что при создании таблицы истории с теми же столбцами, что и у текущей таблицы, легче работать при построении того, как выглядела полная запись после или до определенного изменения. Это также означает, что у вас будут дублированные таблицы и данные.

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

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