Ver Mensaje Individual
  #2 (permalink)  
Antiguo 02/02/2011, 05:23
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 9 meses
Puntos: 574
Respuesta: SQL engorrosa

Para construir esa query necesitas consultar primero el nivel del directorio donde esta el documento

SELECT dir.nivel FROM documento doc
INNER JOIN directorios dir on doc.idDir=dir.diDir WHERE doc.idDoc=X

y luego hacer un bucle para construirla y finalmente ejecutarla.

Se me ocurre que quizas sea mas rapido hacer lo siguiente

SELECT * FROM directorios

obtienes todos los directorios y guardas el resultado en un array

Luego

SELECT * FROM documento doc
INNER JOIN directorios dir on doc.idDir=dir.diDir WHERE doc.idDoc=X

(para un doc o sin el WHERE para todos)

con lo que obtienes los datos del documento y de su directorio, con ellos montas el bucle sobre el array de directorios para obtener el arbol.

Estas son consultas muy simples para el servidor de bbdd y ademas la primera la ejecutas una sola vez (mientras no haya cambios en el arbol de directorios). El bucle sobre el array será mas o menos dificil de programar pero una vez hecho seguramente será mas eficiente que una query con n niveles de recursividad.

No se es una idea....
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 02/02/2011 a las 05:36