PHP MySQL Построить дерево от детей

У меня есть отношение элементов, хранящихся в таблице MySQL следующей структуры:

+---------+------------+
| item_id | parent_id  |
+---------+------------+

Элементы хранятся так:

+-----------+------------+
|  item_id  |    name    |
+-----------+------------+

Мне нужно построить дерево из данного детского симиллара к этому:

- A
-- B
--- D
---- E
----- F
------ X
---- G
----- H
------ I
------- X
- J
-- K
--- L
---- X
----- M
------ X

В настоящее время я показываю только отношения «X — это M», «X — это я» и «X — это F». Я не узнал, как показать все дерево от X до. Каждый элемент может иметь более одного родителя, поэтому всегда есть несколько способов «как добраться до Х».

Я использую MySQL с 50 000 элементов и около 170 000 записей в таблице отношений. Единственный способ, о котором я думаю, — это найти все возможные пути для каждого элемента и его потомка и сохранить их в кеше.

Буду признателен за любую помощь!

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]