Здравствуйте.
Поддерживают ли firebird, interbase и yaffil отношение "многие-ко-многим" на уровне ссылочной целостности и индексов?
Часто ли вам приходится реализовывать такие отношения. И если данные СУБД не поддерживают отношение "многие-ко-многим", то как вы его реализуете?
Корректно ли это делать с помощью дополнительной таблицы? Например такой:
CREATE TABLE IW_WF_DBL_LINK (
IW_ID INTEGER NOT NULL,
WF_ID INTEGER NOT NULL
);
ALTER TABLE IW_WF_DBL_LINK ADD CONSTRAINT PK_IW_WF_DBL_LINK PRIMARY KEY (IW_ID, WF_ID);
ALTER TABLE IW_WF_DBL_LINK ADD CONSTRAINT FK_IW_WF_DBL_LINK_1 FOREIGN KEY (WF_ID) REFERENCES WORDFORMS (ID);
ALTER TABLE IW_WF_DBL_LINK ADD CONSTRAINT FK_IW_WF_DBL_LINK_2 FOREIGN KEY (IW_ID) REFERENCES INITIALWORDS (ID);
Где INITIALWORDS и WORDFORMS - таблицы, которые связаны отношением "многие-ко-многим".
Реализация отношения "многие-ко-многим"
а кто поддерживает? Такой тип отношения только в мозгу есть. Все порядочные инструменты проектирования СУБД реализуют его при помощи дополнительной таблицы.Поддерживают ли firebird, interbase и yaffil отношение "многие-ко-многим" на уровне ссылочной целостности и индексов?
не просто корректно, а даже нужно.Корректно ли это делать с помощью дополнительной таблицы?
Про различные виды связи можно прочитать в книгах, наример:tatsuvan писал(а):Спасибо за ответ. Меня тоже интерсует: "а кто поддерживает?". А собственно почему никто не поддерживает?
Гектор Гарсиа-Молина, Джеффри Д. Ульман
Системы баз данных. Полный курс.
Более сложные связи можно свести к бинарным связям, а посему зачем усложнять жизнь СУБД и разработчику клиента?