Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Хранение истории данных / 4 сообщений из 4, страница 1 из 1
30.11.2001, 08:50
    #32018191
Partner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение истории данных
Нужно сделать историю хранения каких-л данных в отдельной таблице. Может кто подскажет, как обычно это организуют? Я вобщем представляю как можно сделать, но может есть какой-н стандартный подход?
...
Рейтинг: 0 / 0
30.11.2001, 16:17
    #32018239
Владимир
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение истории данных
Обычно каждый реализует историю в зависимости от своих нужд, но в принципе создается таблица с той же структурой, что и таблица из которой нужно получать данные, плюс несколько колонок которые описывают дату(ы), пользователя (если надо) и т.п. в котору по триггеру кидаются данные до и после изменения...Это в принципе простая схема...
...
Рейтинг: 0 / 0
30.11.2001, 16:34
    #32018247
andy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение истории данных
Учтите ещё, что если в базовой таблице у Вас лежит ссылка на что-то, например на фирму партнёра, то потом, когда фирма переименуется, в статистике, может быть, захочется видеть её старое название.
...
Рейтинг: 0 / 0
30.11.2001, 21:43
    #32018257
Cat2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение истории данных
Не совсем ясен вопрос. Какого типа данные нужно переводить в архив?
Тривиальный вариант, вроде хранения каких-либо несвязанных данных, например результатов измерений, опускаю.
Если надо что-то типа учета прихода-расхода, то я применяю такой способ:
Раз в месяц данные из журнала операций, дата совершения которых превышает назначенный интервал удаляется из основного журнала в архивный. При этом производится перерасчет входящих остатков.

Что-то вроде этого (сильно упрощая):

Структура базы.

WorkDate - дата совершения операции
Name - наименование
Quantity - количество (плюс - приход, минус - расход)
Partner - поставщик/получатель

Сдаем данные, более ранние, чем 01.01.1995.

begin transaction

insert into Архив
select * from Журнал
where WorkDate < '19950101'
and Partner <> 'Входящий остаток'

delete from Журнал
where WorkDate < '19950101'

insert into Журнал
select '19941231' as WorkDate, Name,
sum(Quantity), 'Входящий остаток' as Partner from Архив
group by Name
having sum(Quantity)<>0

commit transaction
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Хранение истории данных / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]