powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Историзация и ссылочная целостность
16 сообщений из 16, страница 1 из 1
Историзация и ссылочная целостность
    #36529260
_kyky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто как делает?

В предыдущей конторе так было, если приходит обновление.
Создается новая запись
туда копируются данные со ссылкой на первоначальную ID и закрытым периодом действия
Обновляются данные в старой записи, меняя период действия,

Таким образом:
Cохраняется ссылка FK на запись
Хранится история изменения

Понимаю, что многое зависит от бизнес логики.
...
Рейтинг: 0 / 0
Историзация и ссылочная целостность
    #36529538
Чугада
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_kyky,

Две таблицы. Одна для актуальных данных, другая для исторических.
При любом изменении основной таблицы, в историческую таблицу добавляется запись с новыми значениями объекта, а прежняя запись закрывается датой.

Нечто вроде этого:


Код: plaintext
1.
2.
3.
4.
5.
6.
MAIN_TABLE
---------------
ID
...
DATA
...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
HISTORY_TABLE
---------------
ID
MAIN_TABLE_ID (Внешнего ключа нет)
...
DATA
...
BEGIN_DT
END_DT



+ : Проще получать актуальные данные
- : Избыточность данных(поскольку актуальные данные содержатся в обоих таблицах).


Тоже присоединяюсь к вопросу, может кто подскажет лучшее решение (так сказать проверенное годами)?
...
Рейтинг: 0 / 0
Историзация и ссылочная целостность
    #36529754
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чугада
- : Избыточность данных(поскольку актуальные данные содержатся в обоих таблицах).

Это как посмотреть....
10 центов на 1 ГБ смешно экономить...
А вот возможность восстановить из истории актуальные данные - это уже вроде как "+" получается :)
...
Рейтинг: 0 / 0
Историзация и ссылочная целостность
    #36530026
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_kykyКто как делает?
Корневая запись объекта содержит только ИД и не изменяется. Все св-ва хранятся в другой таблице с датами действия.
...
Рейтинг: 0 / 0
Историзация и ссылочная целостность
    #36530303
_kyky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2мод
не улавливаю смысл или идею?
1.таблица с ID
2.таблица ID,DATE_BEGIN/DATE_END,DATA
и они не связаны по PK-FK
...
Рейтинг: 0 / 0
Историзация и ссылочная целостность
    #36530456
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_kyky
1.таблица с ID
2.таблица ID,DATE_BEGIN/DATE_END,DATA
и они не связаны по PK-FK
связаны - т2 ссылается на т1
а все остальные ссылаются на т1 - вот и целостность
...
Рейтинг: 0 / 0
Историзация и ссылочная целостность
    #36530569
_kyky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 мод
т.е. во второй таблице две записи с одинаковым ID но с разными данными и периодами действия, это вы называете ссылкой, правильно понимаю?
...
Рейтинг: 0 / 0
Историзация и ссылочная целостность
    #36530918
Заде
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_kyky,

ИД у каждой записи свой
...
Рейтинг: 0 / 0
Историзация и ссылочная целостность
    #36530943
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_kyky2 мод
т.е. во второй таблице две записи с одинаковым ID но с разными данными и периодами действия, это вы называете ссылкой, правильно понимаю?
Да, правильно
...
Рейтинг: 0 / 0
Историзация и ссылочная целостность
    #36531011
_kyky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т1. ID1 (PK) сюда ссылаются все кому не лень
Т2. ID2 (PK) ,ID1(FK T1), DATE_BEGIN,DATE_END,ENY_DATA - тут хранится история
...
Рейтинг: 0 / 0
Историзация и ссылочная целостность
    #37015017
_kykyТ1. ID1 (PK) сюда ссылаются все кому не лень
Т2. ID2 (PK) ,ID1(FK T1), DATE_BEGIN,DATE_END,ENY_DATA - тут хранится история


Было:
T1
ID123

T2
ID2 ID1 BEGIN_DATE BEGIN_END101 01.01.2000 01.05.2010111 01.05.2010 01.09.2010121 01.12.2010 NULL

Куда будут ссылаться записи с ID = (10, 11, 12) в таблице T2 (FK ID1) при удалении записи с ID = 1 из таблицы T1?
...
Рейтинг: 0 / 0
Историзация и ссылочная целостность
    #37017187
__Avenger__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересующийся Аноним
Куда будут ссылаться записи с ID = (10, 11, 12) в таблице T2 (FK ID1) при удалении записи с ID = 1 из таблицы T1?

А зачем удалять из таблицы т1? Пусть в т1 будут ТОЛЬКО актуальные данные. А в т2 предыдущие актуальные данные.

Либо вообще хранить все в одной таблице в виде дерева.
...
Рейтинг: 0 / 0
Историзация и ссылочная целостность
    #37017333
__Avenger__А зачем удалять из таблицы т1? П
Ну вот нужно пользователю удалить запись, откуда Вы будете её удалять?

__Avenger__Пусть в т1 будут ТОЛЬКО актуальные данные. А в т2 предыдущие актуальные данные.
Согласен, пусть в Т1 будут только актуальные данные, но при удалении записи она уже не актуальна и её надо удалить из таблицы Т1. И что Вы предлагаете?
...
Рейтинг: 0 / 0
Историзация и ссылочная целостность
    #37017336
Или Вы предлагаете факт существования записи проверять с помощью даты BEGIN_DATE и END_DATE?
...
Рейтинг: 0 / 0
Историзация и ссылочная целостность
    #37017892
Ivan Durak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все верно только для исторической таблицы ФК не нужен. Как раз чтобы удаленные объекты хранить. Иначе это не история уже.Ну можно конечно извращатся с флагом "удален" в основной таблице, но это изврат.
Во втором посте темы схема самая лучшая!!

Если оставить только одну таблицу, с периодами, то просядет быстродействие т.к. в 99% случаев нам нужны текущие а не исторические данные. Единственная доп. проблема - держать всегда согласованными данные в основной таблице и исторической.
...
Рейтинг: 0 / 0
Историзация и ссылочная целостность
    #37030442
moyadetohka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АнатоЛойЧугада- : Избыточность данных(поскольку актуальные данные содержатся в обоих таблицах).

Это как посмотреть....
10 центов на 1 ГБ смешно экономить...
А вот возможность восстановить из истории актуальные данные - это уже вроде как "+" получается :)
http://academytravel.ru/ Как бы посмотреть
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Историзация и ссылочная целостность
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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