Ревизия таблицы / история? - PullRequest
2 голосов
/ 02 февраля 2009

Я пытаюсь найти лучший способ сохранить историю / пересмотр таблиц в реляционной базе данных.

Я провел некоторое исследование и чтение, и не уверен, что будет лучшим способом отслеживания изменений. Что касается моих основных таблиц, я совершенно уверен, что я остановился на таблице ревизий, чтобы отслеживать (см. Рисунок), но я не уверен, что это таблицы отношений. Может быть, просто таблица контрольного журнала, содержащая изменения?

Глядя на образец изображения ниже, как лучше всего сохранить историю таблицы "movies_has_actors"? Я не могу просто сделать так, как с двумя основными таблицами (фильмы, актеры), так как мне нужно знать, какой MOVIE revision_id был активным на момент установления связи. А что, если я хочу добавить в отслеживание, какой пользователь USER добавил отношение (таблица USER отсутствует на образце)? Я не хочу хранить все в самой таблице отношений, потому что это будет только увеличивать объемы и замедлять запросы ...! [Alt text] [1]

Итак, подведем итог, как лучше всего хранить историю таблицы отношений?

С уважением, Modano

Ссылка на изображение: img115.imageshack.us/my.php?image=44623598nv1.jpg

[1]: Изображение

Ответы [ 2 ]

3 голосов
/ 02 февраля 2009

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

Channel9 video - http://channel9.msdn.com/posts/ashishjaiman/CDC-Change-Data-Capture-SQL-Server-2008/

0 голосов
/ 02 февраля 2009

Я думаю, что таблицы аудита - это хорошее решение. Если вы используете SQL Server 2008, отметьте Изменить сбор данных . Это функция автоматического отслеживания изменений.

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