02/02/2011, 05:23
|
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 |