Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

помогите разобраться с реляционной структурой [D6, Paradox]


atmamont ©   (2002-12-18 23:33:00) 

Ситуация:
в базе нужно отразить документ, у которого есть некоторые реквизиты и предусмотреть возможность изменения этих реквизитов во времени с помощью объекта "Доп. соглашение" с сохранением старых реквизитов.

Мне сложно положить эту модель на реляционную структуру, потому как совсем мало опыта проектирования таких ситуаций. К примеру, в 1С это тривиально решается с помощью периодических реквизитов документа либо с помощью подчиненного документа, который хранит старые и новые реквизиты и при проведении меняет условия родительского документа. А тут что-то сложно придумать красивое и удобное решение.

Может у кого был опыт проектирования таких баз либо присутствует голова светлая?.. :)
Если можно, приведите пример в пару таблиц.


atmamont   (2002-12-19 01:12:00) [1]

Спасибо, идею понял.


Jeer   (2002-12-19 00:38:00) [2]

А варианты модификации определяют правила каскадных изменений зависимых документов.
Цепочка изменений может прерываться на проведенном документе (те том, где или после которого ничего менять уже нельзя по причине завершения бизнес-транзакции)


Jeer   (2002-12-19 00:35:00) [3]

Не обязательно ID+MOD_ID
Введи ссылку на parent

ID
PARENT (ссылка на ID)
VERS версия (больше для человека чем для базы тк дублирует ID+PARENT)
VDATE дата версии
...


atmamont   (2002-12-19 00:24:00) [4]

И получается, что primary key будет уже ID+MOD_ID


atmamont   (2002-12-19 00:21:00) [5]

правильно ли я понял?

TABLE
ID | MOD_ID | DATE_MOD | A1 | ... | AN
----------------------------------------
1 | 1 | date1 | 5 | | 332
1 | 2 | date2 | 10 | | 300
1 | 3 | date3 | 11 | | 310

A1 .. AN - реквизиты документа
ID - к примеру номер документа как он должен быть
MOD_ID - номер модификации (доп.соглашения)
DATE_MOD - дата допсглашения
В результате получает на нужную дату по date_mod кортеж необходимых реквизитов... Вроде все сходится

А вот насчет вариантов модификации можно подробнее? Первый раз сталкиваюсь с такими.


Jeer   (2002-12-19 00:11:00) [6]

Поля - версия документа и дата.
Неуникальные поля копируются, затем модифицируются.
Варианты модификации
- только текущий документ
- вниз
- вверх
- сквозная


Наверх

Титульная страница Поиск, карта сайта Написать письмо