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

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

Как быть с циклическими ссылками в таблицах?? [D5, MSSQL]


bsa ©   (2002-02-05 15:56:00) 

Доброго времени суток.
Столкнулся с ситуацией, и не знаю как правильно ее решить. Способов много, но может быть главного и правильного я не знаю. Помогите, пожалуйста. Суть вопроса такова (усеченно и упрощенно):
Есть таблица типов ТТ, есть подчиненные таблицы объектов ТО1 и ТО2, четвертая таблица ТЧ подчинена и ТО1, и ТО2. И все бы ничего, но в возникшем цикле, в таблице ТЧ должны встречаться объекты из ТО1 и ТО2 принадлежащие одному типу из ТТ. Предметная область такова и ничего с этим не поделаешь. Как решается вопрос достоверности и целостности информации в таких случаях?


Gregory   (2002-02-06 08:44:00) [1]

1. Например, весь контроль целостности возложить на хранимые процедуры - тогда конечно с этими таблицами, напрямую, уже не работать. В этом случае декларативную ссылочную целостность можно
2. Используя триггеры
3. Если в TO1 и TO2 ключ будет составным, состоящим из поля ссылающегося на TT и id в пределах типа TT, то можно так (стандарта SQL в описании придерживаться не буду :) ):

table TT ( id )
add primary key( id )
table TO1 ( id, tt_ref )
add primary key( id, tt_ref )
add foreign key( tt_ref ) references TT
table TO2 ( id, tt_ref )
add primary key( id, tt_ref )
add foreign key( tt_ref ) references TT
table T4 ( id_to1, id_to2, tt_ref )
add primary key( id_to1, id_to2, tt_ref )
add foreign key( id_to1, tt_ref ) references TO1
add foreign key( id_to2, tt_ref ) references TO2

В этом случае ты можешь в T4 объединять записи только из одного TT


Наверх

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