|
Вопрос # 5 977/ вопрос открыт / |
|
Приветствую, уважаемые эксперты!
Такой вопрос есть БД есть 3 таблицы: A c полями (ID;TYPE;...), B(ID;IDOBJ;...), C(IDLINK;...) Вопрос можно ли при помощи внешних ключей организовать такую связь. Если TYPE='Объект' то внешний ключ на таблицу B A.ID=B.IDOBJ, если TYPE='Связь', то внешний ключ на таблицу C A.ID=C.IDLINK. Если это не возможно при помощи ForeignKey, то как организовать такую связь оптимальным образом. спасибо!
Мини-форум вопроса
Всего сообщений: 3; последнее сообщение — 6 марта 2012, 19:41; участников в обсуждении: 2.
|
Мережников Андрей (статус: Абитуриент), 5 марта 2012, 19:46 [#1]:
в принципе можно написать sql запрос, типа:
SELECT список полей
FROM a
LEFT OUTER JOIN b ON (a.type='Объект' AND a.id=b.idobj)
LEFT OUTER JOIN c ON (a.type='Связь' AND a.id=c.idlink)
|
|
Казаков Николай Константинович (статус: 1-ый класс), 6 марта 2012, 08:52 [#2]:
Нет вы не поняли, мне это надо не для вывода данных, а для контроля целостности, чтоб я в А удалил строку и B или C в зависимости от TYPE удалились соответствующие строки
|
|
Мережников Андрей (статус: Абитуриент), 6 марта 2012, 19:41 [#3]:
А где объяснение того, что именно требуется? Какой сервер БД используется? Поддерживает триггеры? Если да, то лучший вариант, на мой взгляд, операцию удаления лучше прописать в триггере.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|