Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Montar sistema de carpetas y archivos

Estas en el tema de Montar sistema de carpetas y archivos en el foro de Mysql en Foros del Web. Buenos días, estoy intentando hacer un sistema de carpetas y archivos para mostrar un listado en una página web. Lo he diseñado así. tabla_usuarios: id_usuario ...
  #1 (permalink)  
Antiguo 04/02/2014, 05:41
 
Fecha de Ingreso: septiembre-2005
Mensajes: 522
Antigüedad: 18 años, 7 meses
Puntos: 0
Montar sistema de carpetas y archivos

Buenos días,

estoy intentando hacer un sistema de carpetas y archivos para mostrar un listado en una página web.

Lo he diseñado así.

tabla_usuarios:
id_usuario
clave
nombre


tabla_carpetas:
id_carpeta
nombre


tabla_usuarios_carpetas:
id_usuario
id_carpeta


tabla_archivos:
id_archivo
nombre
id_carpeta


tabla_usuarios_archivos:
id_usuario
id_archivo



Lo que hago es mostrar, para 1 usuario, la lista de carpetas y archivos (con o sin carpeta) que puede ver:


- archivo_1
- archivo_2

- carpeta_1
---archivo_3
---archivo_4

- carpeta_2

- carpeta_3


Ahora necesitaría añadir sub_carpetas, es decir, carpetas dentro de carpetas. Incluso carpetas dentro de carpetas dentro de otras carpetas, parecido a esto:

- carpeta_1
----sub_carpeta_1
--------sub_sub_carpeta_1
------------sub_sub_carpeta_2
----------------sub_sub_sub_capeta_1
--------------------archivo_1
- carpeta_2

Como podría modificar la base de datos para montar el sistema este de carpetas dentro de carpetas?

Saludos
  #2 (permalink)  
Antiguo 05/02/2014, 01:35
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Montar sistema de carpetas y archivos

tabla_carpetas
id_carpeta
nombre
id_carpeta_padre
nivel

donde "id_carpeta_padre" es una FK referenciando "id_carpeta" de la misma tabla y nivel te indica el nivel en el arbol de carpetas,
nivel es igual a nivel de la carpeta padre mas 1.

nivel=0 ---> id_carpeta_padre IS NULL
nivel=1 ---> id_carpeta_padre es una carpeta de nivel 0
nivel=2 ---> id_carpeta_padre es una carpeta de nivel 1
....

Ahora bien para listar necesitaras programación externa

Basicamente es el mismo problema que un menu con categorias y subcategorias http://www.forosdelweb.com/f86/probl...2/#post4559088 aqui tienes la estrategia de programación, en tu caso el campo orden sera el nombre de la carpeta y se ordenaran alfabeticamente. (Usa IFNULL(id_carpeta_padre,0) para pasar de null a cero)
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 05/02/2014 a las 01:46
  #3 (permalink)  
Antiguo 09/02/2014, 06:43
 
Fecha de Ingreso: septiembre-2005
Mensajes: 522
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Montar sistema de carpetas y archivos

Hola,

lo he montando de la siguiente forma:

Código HTML:
                                nivel      id_padre
1, 'Carpeta_1',         '1',        0
2, 'Carpeta_1_1',     '2',        1
3, 'Carpeta_1_1_1', '3',        2
4, 'Carpeta_1_1_2', '3',        2
5, 'Carpeta_1_2',     '2',        1
6, 'Carpeta_1_3',     '2',        1
7, 'Carpeta_2',         '1',        0
Como puedo hacer el select para que se me queden ordenadas de esta misma manera, es decir, para que luego pueda guardar en una matriz por ejemplo este mismo formato:

- carpeta1,carpeta1_1,carpeta1_1_1,carpeta1_1_2,carp eta1_2

Creo que si en el SELECT ya lo tengo ordenado para mostrarlo me será más fácil.

Saludos
  #4 (permalink)  
Antiguo 10/02/2014, 02:40
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Montar sistema de carpetas y archivos

Si seria lo más fácil pero no se puede debido a la recursibidad en el link que te adjunto explico como lo solucione yo.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Etiquetas: carpetas, montar, sistema, tabla, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:17.