У меня есть вопрос о том, могу ли я извлечь информацию о косвенных отношениях из базы данных SQL, просто используя SQL.
Инструмент моделирования, который я использую, основан на базе данных SQL, которая, по сути, имеет только две таблицы:Элементы и отношения.Ниже приведены определения таблиц:
Elements:
id, type, name
Relations:
id, type, name, source, target
Элементы - это просто список объектов с уникальным идентификатором, сгенерированным системой, а Связь (также с уникальным Идентификатором) использует уникальные идентификаторы Элементов для определения отношений между ними встолбцы «источник» и «цель».
Что я пытаюсь выяснить: для любых двух элементов в модели, например, A и D или A и E, на диаграмме ниже - связаны ли они, и если да, то как, в том числемножественные косвенные отношения через другие элементы?
![Example Model](https://i.stack.imgur.com/d9rwh.png)
Я знаю, что мог бы решить эту проблему, написав некоторый процедурный код, который рекурсивно обходит таблицу отношений, полностью проверяя каждое отношениемежду A и D (или E).Но это не так просто для кода.
Так что мне стало интересно, кто-нибудь может подсказать мне лучшее решение этой проблемы?В частности, есть ли решение этой проблемы только для SQL или мне придется написать какой-нибудь процедурный код?
Рассматриваемая база данных SQL - это alaSQL, лежащая в основе инструмента моделирования Archi .Но мне также интересно, есть ли другие решения, так как закачка данных в новую СУБД не является проблемой.
Спасибо.