2016-06-02 3 views
0

Я создаю приложение, которое отображает значения для свойств различных объектов, которые меняются со временем. В соответствии с этим таблица для данного объекта содержит строки для экземпляров этого объекта, содержащие значения, представляющие текущее состояние его различных свойств. Каждый раз, когда изменяется значение свойства, соответствующая строка обновляется, чтобы отражать новые значения.Отслеживание изменений значений во времени Структура базы данных SQL

Однако я хотел бы зафиксировать исторические данные для целей исторического анализа.

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

Мне действительно интересно, есть ли здесь лучшая практика, отличная от этого метода ведения журнала.

+0

Вы используете SQL2016? –

+0

Это возможность; в настоящее время используется 2014 –

+0

SQL2016 поставляется с [временными таблицами] (https://msdn.microsoft.com/en-us/library/dn935015.aspx) (<> временные таблицы/#localtemp/## globaltemp). Кроме того, в зависимости от некоторых конкретных требований я бы использовал: INSERT/UPDATE/DELETE/MERGE с OUTPUT ... INTO Предложение AuditTable, триггеры, CHANGE TRACKING, CHANGE DATA CAPTURE, SQL Audit. –

ответ

0

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