Si los conjuntos anidados no son una opción, sé lo siguiente:
- Si los datos están ordenados de modo que los hijos de un padre siempre sigan a su padre, puede resolver esto con una consulta de base de datos sobre todos los datos saltando los nodos ocultos en la salida.
Esto también funciona con un conjunto anidado ordenado, el principio se ha descrito en esta respuesta sin embargo, los algoritmos para obtener la profundidad no funcionan y sugeriría un iterador recursivo que es capaz de eliminar elementos ocultos.
Además, si los datos no están ordenados, puede crear una estructura de árbol a partir de la consulta (sin clasificar) de todas las filas como se describe en la respuesta a matriz anidada. El tercer nivel está desapareciendo
. No se necesita recursión y obtienes una estructura que puedes generar fácilmente, debería haber cubierto eso para <ul>/<li>
salida de estilo html en otra respuesta también.
- Respuesta a ¿Cómo puedo convertir una serie de relaciones padre-hijo en un árbol jerárquico? ?
- Respuesta a ¿Cómo obtener una lista HTML anidada del conjunto de registros de la matriz del objeto?