Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/07/2004, 18:37
Avatar de zarate
zarate
 
Fecha de Ingreso: septiembre-2001
Ubicación: Madrid
Mensajes: 164
Antigüedad: 22 años, 7 meses
Puntos: 0
Duda sobre rendimiento en consultas anidadas...

Buenas a todo el mundo.

Tengo que representar un sistema de archivos para una web. La idea genérica es sencilla, son carpetas que pueden almacenar otras carpetas.

En la tabla de las carpetas, cada carpeta tien un campo "id_parent" que especifica cual es la carpeta "padre" o carpeta que contiene a la carpeta en cuestión (será 0 si una de las carpetas maestras o generales).

El problema viene cuando quiero hacer los típicos breadCrumbs del estilo:

Está usted en: General -> Carpeta 1 -> Carpeta 2

Mi duda de cómo resolverlo está entre:

Método 1: Crear un campo nuevo a cada carpeta en el que guarde esta información. Se trataría de, durante el proceso de alta, almacenar en un array las carpetas por las que va pasando hasta llegar al alta. No me gusta mucho porque en realidad se está duplicando la información de la base por un lado, y por otro, un cambio de estructuras de las carpetas implicaría aplicar el cambio de información en muchos registros de la base.

Método 2: Empezar a recorrer con un for las carpetas "padre" de la actual hasta llegar a una con id_parent = 0. Me parece el método más limpio, pero no sé si puede consumir demasiados recursos.... Realmente no creo que vaya a haber más de 10 niveles en ningún caso, pero el sistema debe estar preparado para que sí.

Pues si tenéis alguna recomendación o experiencia con esto os lo agradecería mucho.

Un saludo!
__________________
Zárate