Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.03.04;
Скачать: [xml.tar.bz2];

Вниз

Как быть с циклическими ссылками в таблицах??   Найти похожие ветки 

 
bsa   (2002-02-05 15:56) [0]

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


 
Gregory   (2002-02-06 08:44) [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



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2002.03.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.004 c
1-9170
ProstoChaynik
2002-02-14 09:25
2002.03.04
цвет TButton


6-9263
Leviathan
2001-12-10 22:29
2002.03.04
Ошибка на сокете


1-9171
VID
2002-02-14 09:15
2002.03.04
Необязательные параметры функции


6-9251
Ohtori_Akio
2001-12-15 18:20
2002.03.04
TClientSocket (используемый внутри TServerThread.ClientExecute) не видит обрыва сессии


6-9248
[TLS]Lord
2001-12-11 01:59
2002.03.04
Неужели нет ничего кроме NMSMTP?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский