Ver Mensaje Individual
  #12 (permalink)  
Antiguo 27/08/2013, 12:50
Avatar de dashtrash
dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años, 7 meses
Puntos: 270
Respuesta: [APORTE] Estructura de árbol desde de base de datos

Aparte de opiniones estilisticas (si una clase tiene exactamente el mismo nombre que un interface, es que no existe ese interface), cargar *todos* los elementos de un árbol, reconstruirlo en memoria, para devolver un nodo, o la lista de nodos hijos directos de un nodo...
Obtener 1 nodo , o sus hijos directos, se consigue con 1 query, sin necesidad de una clase que reconstruya el árbol entero en memoria.
Incluso para alguna operación más, con arrays se puede crear el código equivalente en unas 4 o 5 líneas.(pista: si el select ya va ordenado por nodo-padre, campo-por-el-que-ordenar-hijos), no es necesario sort, usort,etc).

Por otro lado,si te ha funcionado es porque la tabla que utilizas, tiene sólo unos cuantos elementos.Por eso puedes hacer un select + inner join de toda la tabla.
Supón que la tabla tiene 1 millón de filas.

De todo lo que he visto sobre árboles, especialmente en base de datos, (y hay algún libro exclusivamente dedicado a cómo implementar árboles en SQL) lo que mejor me ha funcionado es mantener el path completo desde el root, hasta el nodo, en un campo de la tabla.