Форум: "Базы";
Текущий архив: 2002.06.10;
Скачать: [xml.tar.bz2];
ВнизIBx - Master & Detail Найти похожие ветки
← →
Normal (2002-05-17 13:44) [0]Вот такой вопро - есть две таблицы, связанные как Master & Details. Такой вопрос - добавляю в detail таблицу запись. А как обеспечить значение foreign ключа ? В триггере почему-то ругается, когда ему говорят :
NEW.IdSecond = MASTER.IdSecond
Как сие разрулить ?
← →
Desdechado (2002-05-17 15:13) [1]дык, запись должна добавляться с конкретным ключом из Master, а не с каким-попало. Поэтому это присваивается не в триггере, а в операторе добавления записи.
← →
Normal (2002-05-17 15:29) [2]Дык а как его узнать-то конкретный ключ ? Select max(idsecond) from master ? так что ли ?
← →
Val (2002-05-17 16:06) [3]причем тут max..? вы ведь запись в дочерней таблице к какой-то конкретной мастер-записи создаете, а не к последней? Так из нее (конкретной)и берите этот самый ID. Запросы для чего?
← →
Desdechado (2002-05-17 19:05) [4]похоже, ты недопонимаешь понятие мастер-деталь.
мастер - проще говоря, справочник. в нем значение уже должно быть.
деталь - таблица, которая одним из полей включает ссылку на справочник. при добавлении в нее берется уже готовое значение из справочника и заполняются остальные поля.
вот и сформулируй теперь вопрос по-новому
← →
normal (2002-05-18 07:48) [5]Хорошо. Предположим я добавил записи в Master. Их скажем 10. Теперь мне нужно добавить 2 записи в Detail, ориентируясь на запись 3 в Master. Теперь я добавляю запись в Detail. Соответственно, чтобы обеспечить целостность, я должен указать в качестве значения вторичного ключа в Detail значение ключа в Master, которое соответствует записи N 3. Средствами Delphi это просто - Detail.OnNewRecord : DetailIdSecond.AsInteger := MasterIdSecond.Value. А как это сделать на самом сервере IB ???
← →
Johnmen (2002-05-18 09:11) [6]Никак, поскольку в базе нет никаких взаимосвязей (кроме ограничения целостности) между двумя таблицами !
Такие всаимоствязи (Master-Detail) всегда организуются в приложении.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.06.10;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c