Re: Сохранение истории записей из таблицы
От: avpavlov  
Дата: 28.05.07 15:44
Оценка:
Здравствуйте, dronlinux, Вы писали:

D>Доброго всем времени суток! Подскажите пожайлуста куда копать...


D>Сервер MS SQL 2000. Есть таблица с данными (более 40 полей) встала задача сохранять историю записей этой таблицы. В среднем таблица имеет 300.000 записей. История нужна для ведения в течение года, чтобы потом выцеплять изменения данных в течение определенного периода. Какой вижу выход(помидорами не закидывать):

D>1. Делать бэкап таблицы каждый раз после изменений (но данный способ кажется мне неподходящим)
D>2. Весить триггеры на таблицу(ы) и отслеживать Update, Insert, Delete. НО, так как база не моя, над таблицей проводится множество апдейтов по разным полям, поэтому триггер отрабатывая после каждого апдейта будет заносить в таблицу истории лишние данные, а надо всю строку.
D>3. Добавлять доп.столбцы в основную таблицу и отслеживать дату

D>Подскажите кто как выходил из данной ситуации?



С триггером мне кажется оптимально — или несколько полей меняются отдельными апдейтами?

Как вариант, в триггере каким либо образом проверять что копию сегодня уже делали (т.е. не первое обновление) и не делать дополнительную копию. В версионной таблице фактически будут хранится варианты на начало дня, и если в этот день был хоть один апдейт.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.