Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Хранение старых данных  [new]
abend
Member

Откуда: Москва
Сообщений: 281
Прошу сильно не пинать, если уже было (подозреваю, что наверняка было, но не нашел).

Итак, есть таблица со списком сотрудников. Необходимо при изменении некоторых полей таблицы (не всех) сохранять как старую версию данных, так и новую. Т.е. куда-то засовывать данные DELETED в триггере.

Вариантов пока 2:
1. Хранить старые данные в той же таблице, добавив поле actualDate datetime (туда записывать дату-время добавления записи)
2. Скидывать старые данные в отдельную таблицу

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

Пока склоняюсь к варианту №1. Есть ли какие-то идеи на этот счет?
29 авг 12, 17:25    [13084139]     Ответить | Цитировать Сообщить модератору
 Re: Хранение старых данных  [new]
TungusXan
Member

Откуда: Хочу туда где нет труда и каждый день зарплата! =)
Сообщений: 1686
Тут куча обсуждений. Но если ИМХО в вашем случае я думаю первый вариант предпочтительнее.
29 авг 12, 17:38    [13084252]     Ответить | Цитировать Сообщить модератору
 Re: Хранение старых данных  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31863
abend
Вариантов пока 2:
1. Хранить старые данные в той же таблице, добавив поле actualDate datetime (туда записывать дату-время добавления записи)
2. Скидывать старые данные в отдельную таблицу
3. Хранить данные, которые учитываются по времени, в других таблицах.

Хотя если все данные такие по сотруднику, то вариант 1.

Тогда, если сотрудник сменил фамилию, его будут отображать в ведомости на зарплату 2 раза - полмесяца со старой фамилией, полмесяца с новой.
29 авг 12, 18:25    [13084620]     Ответить | Цитировать Сообщить модератору
 Re: Хранение старых данных  [new]
abend
Member

Откуда: Москва
Сообщений: 281
ОК. Спасибо. Я тоже склонялся к этому варианту...
29 авг 12, 20:20    [13085160]     Ответить | Цитировать Сообщить модератору
 Re: Хранение старых данных  [new]
Serg_77m
Member

Откуда: Донецк
Сообщений: 237
abend
1. Хранить старые данные в той же таблице, добавив поле actualDate datetime (туда записывать дату-время добавления записи)
2. Скидывать старые данные в отдельную таблицу
Если такая таблица одна, то наверное, первый вариант проще.
У нас сначала был первый вариант, потом мы перешли на второй. Но у нас таких таблиц было несколько (полтора-два десятка), со связями. В первом варианте сложнее сделать контроль целостности (триггеры выписывать), но если для Вас оно неактуально, то сойдёт и так.
А можно в отдельной таблице, кроме истории, хранить также и последнее состояние - займёт больше места, но зато для запросов на выборку не нужно будет обращаться к двум таблицам.
29 авг 12, 20:22    [13085167]     Ответить | Цитировать Сообщить модератору
 Re: Хранение старых данных  [new]
iap
Member

Откуда: Москва
Сообщений: 47083
Журналирование изменений структуры БД и данных
29 авг 12, 21:09    [13085417]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить