SQL / SqlAlchemy: запрос всех объектов в дереве зависимостей - PullRequest
0 голосов
/ 28 июня 2018

У меня есть таблица с само-асимметричной зависимостью «многие ко многим» между объектами. Я использую это отношение для создания надежного дерева между объектами.

Имея набор идентификаторов объектов, я хотел бы получить все объекты, которые находятся где-то в этом дереве зависимостей.

Вот пример таблицы объектов:

+----+------+
| ID | Name |
+----+------+
|  1 |    A |
|  2 |    B |
|  3 |    C |
|  4 |    D |
|  5 |    E |
+----+------+

И таблица отношений:

+------------+-----------+
| Dependancy | Dependant |
+------------+-----------+
|          2 |         1 |
|          3 |         2 |
|          4 |         1 |
+------------+-----------+

Отображение A (ID: 1) зависит от B(2) и D(4), а B(2) зависит от C(3).

Теперь я хотел бы построить один SQL-запрос, в котором {1} в виде набора с одним идентификатором вернет четыре объекта в дереве зависимостей A: A, B, D и C. В качестве альтернативы также допустимо использование одного запроса для получения всех необходимых идентификаторов объектов, а другого - для получения их фактических данных.

Это должно работать независимо от количества уровней в дереве зависимостей / иерархии.

Я буду доволен либо примером SQLAlchemy, либо простым SQL для базы данных postgresql 10 (которую я посмотрю позже, как реализовать с помощью SQLAlchemy).

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...