Предположим, в моей таблице данные структурированы в следующем формате. Здесь у одного идентификатора есть один дочерний элемент (или может быть несколько), а у этого дочернего элемента есть еще один дочерний элемент и т. Д., И т. Д.
ID name parent_id
-------------------------
1 a null
2 b 1
3 c 2
4 d 3
5 e 1
6 f 1
Теперь, когда я запрашиваю таблицу по идентификатору, у которого нет родителя, Я хочу отображать данные в словаре следующим образом: Например, когда я запрашиваю приведенную выше таблицу с помощью getBydId (1):
{
id: 1,
name: a,
parent_id: ""
child: [
{
id: 2,
name: b,
parent_id: 1
child: [
{
id: 3,
name: c,
parent_id: 2
child: [
{
id: 4,
name: d,
parent_id: 3
child: [] #or ""
}
]
}
]
},
{
id: 4,
name: "e",
parent_id: 1
child: [] #or ""
},
{
id: 5,
name: "f",
parent_id: 1
child: [] #or ""
}
]
}
Я знаю, что чего-то подобного можно достичь с помощью рекурсии, но я Я запутался в логике бизнеса c, чтобы добиться этого.
Спасибо.