SQL-запрос для нескольких косвенных отношений - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть вопрос о том, могу ли я извлечь информацию о косвенных отношениях из базы данных SQL, просто используя SQL.

Инструмент моделирования, который я использую, основан на базе данных SQL, которая, по сути, имеет только две таблицы:Элементы и отношения.Ниже приведены определения таблиц:

Elements:
id, type, name

Relations:
id, type, name, source, target

Элементы - это просто список объектов с уникальным идентификатором, сгенерированным системой, а Связь (также с уникальным Идентификатором) использует уникальные идентификаторы Элементов для определения отношений между ними встолбцы «источник» и «цель».

Что я пытаюсь выяснить: для любых двух элементов в модели, например, A и D или A и E, на диаграмме ниже - связаны ли они, и если да, то как, в том числемножественные косвенные отношения через другие элементы?

Example Model

Я знаю, что мог бы решить эту проблему, написав некоторый процедурный код, который рекурсивно обходит таблицу отношений, полностью проверяя каждое отношениемежду A и D (или E).Но это не так просто для кода.

Так что мне стало интересно, кто-нибудь может подсказать мне лучшее решение этой проблемы?В частности, есть ли решение этой проблемы только для SQL или мне придется написать какой-нибудь процедурный код?

Рассматриваемая база данных SQL - это alaSQL, лежащая в основе инструмента моделирования Archi .Но мне также интересно, есть ли другие решения, так как закачка данных в новую СУБД не является проблемой.

Спасибо.

...