|
|
|
Историзация и ссылочная целостность
|
|||
|---|---|---|---|
|
#18+
Кто как делает? В предыдущей конторе так было, если приходит обновление. Создается новая запись туда копируются данные со ссылкой на первоначальную ID и закрытым периодом действия Обновляются данные в старой записи, меняя период действия, Таким образом: Cохраняется ссылка FK на запись Хранится история изменения Понимаю, что многое зависит от бизнес логики. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2010, 17:48 |
|
||
|
Историзация и ссылочная целостность
|
|||
|---|---|---|---|
|
#18+
_kyky, Две таблицы. Одна для актуальных данных, другая для исторических. При любом изменении основной таблицы, в историческую таблицу добавляется запись с новыми значениями объекта, а прежняя запись закрывается датой. Нечто вроде этого: Код: plaintext 1. 2. 3. 4. 5. 6. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. + : Проще получать актуальные данные - : Избыточность данных(поскольку актуальные данные содержатся в обоих таблицах). Тоже присоединяюсь к вопросу, может кто подскажет лучшее решение (так сказать проверенное годами)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2010, 20:21 |
|
||
|
Историзация и ссылочная целостность
|
|||
|---|---|---|---|
|
#18+
Чугада - : Избыточность данных(поскольку актуальные данные содержатся в обоих таблицах). Это как посмотреть.... 10 центов на 1 ГБ смешно экономить... А вот возможность восстановить из истории актуальные данные - это уже вроде как "+" получается :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2010, 23:10 |
|
||
|
Историзация и ссылочная целостность
|
|||
|---|---|---|---|
|
#18+
_kykyКто как делает? Корневая запись объекта содержит только ИД и не изменяется. Все св-ва хранятся в другой таблице с датами действия. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2010, 09:10 |
|
||
|
Историзация и ссылочная целостность
|
|||
|---|---|---|---|
|
#18+
2мод не улавливаю смысл или идею? 1.таблица с ID 2.таблица ID,DATE_BEGIN/DATE_END,DATA и они не связаны по PK-FK ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2010, 11:26 |
|
||
|
Историзация и ссылочная целостность
|
|||
|---|---|---|---|
|
#18+
_kyky 1.таблица с ID 2.таблица ID,DATE_BEGIN/DATE_END,DATA и они не связаны по PK-FK связаны - т2 ссылается на т1 а все остальные ссылаются на т1 - вот и целостность ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2010, 12:15 |
|
||
|
Историзация и ссылочная целостность
|
|||
|---|---|---|---|
|
#18+
2 мод т.е. во второй таблице две записи с одинаковым ID но с разными данными и периодами действия, это вы называете ссылкой, правильно понимаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2010, 12:39 |
|
||
|
Историзация и ссылочная целостность
|
|||
|---|---|---|---|
|
#18+
_kyky, ИД у каждой записи свой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2010, 14:09 |
|
||
|
Историзация и ссылочная целостность
|
|||
|---|---|---|---|
|
#18+
_kyky2 мод т.е. во второй таблице две записи с одинаковым ID но с разными данными и периодами действия, это вы называете ссылкой, правильно понимаю? Да, правильно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2010, 14:12 |
|
||
|
Историзация и ссылочная целостность
|
|||
|---|---|---|---|
|
#18+
Т1. ID1 (PK) сюда ссылаются все кому не лень Т2. ID2 (PK) ,ID1(FK T1), DATE_BEGIN,DATE_END,ENY_DATA - тут хранится история ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2010, 14:27 |
|
||
|
Историзация и ссылочная целостность
|
|||
|---|---|---|---|
|
#18+
_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? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2010, 09:23 |
|
||
|
Историзация и ссылочная целостность
|
|||
|---|---|---|---|
|
#18+
Интересующийся Аноним Куда будут ссылаться записи с ID = (10, 11, 12) в таблице T2 (FK ID1) при удалении записи с ID = 1 из таблицы T1? А зачем удалять из таблицы т1? Пусть в т1 будут ТОЛЬКО актуальные данные. А в т2 предыдущие актуальные данные. Либо вообще хранить все в одной таблице в виде дерева. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2010, 00:18 |
|
||
|
Историзация и ссылочная целостность
|
|||
|---|---|---|---|
|
#18+
__Avenger__А зачем удалять из таблицы т1? П Ну вот нужно пользователю удалить запись, откуда Вы будете её удалять? __Avenger__Пусть в т1 будут ТОЛЬКО актуальные данные. А в т2 предыдущие актуальные данные. Согласен, пусть в Т1 будут только актуальные данные, но при удалении записи она уже не актуальна и её надо удалить из таблицы Т1. И что Вы предлагаете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2010, 08:24 |
|
||
|
Историзация и ссылочная целостность
|
|||
|---|---|---|---|
|
#18+
Или Вы предлагаете факт существования записи проверять с помощью даты BEGIN_DATE и END_DATE? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2010, 08:27 |
|
||
|
Историзация и ссылочная целостность
|
|||
|---|---|---|---|
|
#18+
все верно только для исторической таблицы ФК не нужен. Как раз чтобы удаленные объекты хранить. Иначе это не история уже.Ну можно конечно извращатся с флагом "удален" в основной таблице, но это изврат. Во втором посте темы схема самая лучшая!! Если оставить только одну таблицу, с периодами, то просядет быстродействие т.к. в 99% случаев нам нужны текущие а не исторические данные. Единственная доп. проблема - держать всегда согласованными данные в основной таблице и исторической. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2010, 12:05 |
|
||
|
Историзация и ссылочная целостность
|
|||
|---|---|---|---|
|
#18+
АнатоЛойЧугада- : Избыточность данных(поскольку актуальные данные содержатся в обоих таблицах). Это как посмотреть.... 10 центов на 1 ГБ смешно экономить... А вот возможность восстановить из истории актуальные данные - это уже вроде как "+" получается :) http://academytravel.ru/ Как бы посмотреть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2010, 20:17 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=36529260&tid=1542391]: |
0ms |
get settings: |
7ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
438ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 702ms |

| 0 / 0 |
