Запрос единой таблицы аудита для отчетности - PullRequest
0 голосов
/ 06 августа 2009

Я играл с идеей единой таблицы аудита для нескольких таблиц в моей базе данных. Я нашел код на этой странице: http://www.simple -talk.com / sql / database-management / pop-rivetts-sql-server-faq-no.5-pop-on-the-Audit Trail /

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

После внесения некоторых изменений таблица аудита выглядит следующим образом: alt text

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

Ответы [ 2 ]

5 голосов
/ 15 мая 2014

Альтернативным решением этого «кошмара» (любимый комментарий Дэйва) является использование двух таблиц аудита, заполненных триггерами аудита. Вы можете оценить стороннее решение , которое создает как триггеры, так и таблицы аудита через графический интерфейс, а затем проверить, как оно на самом деле работает.

Отказ от ответственности: я работаю инженером службы поддержки продуктов в ApexSQL

2 голосов
/ 06 августа 2009

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

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

Также имейте в виду, что схема, описанная в статье, даже не экономит место для очень узких таблиц! На самом деле он может быть больше, чем одитинг на уровне строк.

...