Jeśli zagnieżdżone zestawy nie są opcją, wiem o następujących rzeczach:
- Jeśli dane są uporządkowane w taki sposób, że dzieci rodzica zawsze podążają za rodzicem, możesz rozwiązać ten problem za pomocą jednego zapytania do bazy danych dotyczącego wszystkich danych, pomijając ukryte węzły w danych wyjściowych.
Działa to tak samo w przypadku posortowanego zestawu zagnieżdżonego, zasada została opisana w tej odpowiedzi jednak algorytmy dotyczące uzyskiwania głębokości nie działają i sugerowałbym iterator rekurencyjny który jest w stanie usunąć ukryte elementy.
Jeśli dane nie są uporządkowane, możesz utworzyć strukturę drzewa z (nieposortowanego) zapytania dotyczącego wszystkich wierszy, jak opisano w odpowiedź na Zagnieżdżona tablica. Trzeci poziom znika
. Rekurencja nie jest potrzebna i otrzymujesz strukturę, którą możesz łatwo wyprowadzić, powinienem to omówić dla <ul>/<li>
Wyjście w stylu html w innej odpowiedzi.
- Odpowiedź na Jak przekształcić serię relacji rodzic-dziecko w drzewo hierarchiczne ?
- Odpowiedź na Jak uzyskać zagnieżdżoną listę HTML z zestawu rekordów tablicy obiektu?