• Publicidad

Crear categorías y subcategorías infinitas

Todo lo relacionado con el desarrollo Web con Perl: desde CGI hasta Mojolicious

Crear categorías y subcategorías infinitas

Notapor bAsTeR » 2009-01-31 13:36 @608

Hola que tal amigos, pues aquí haciéndome otros cuestionamientos. Esta vez son en busca de opiniones acerca de un problema de base de datos.

Resulta que estoy haciendo una aplicación web en la cual tenemos un menú principal, del cual a su vez salen una serie de submenús, pero también hay casos en los que de los submenús vuelve a salir otros submenús.

Me explicaré mejor. Yo en mi administrador puedo crear una categoría principal. De esta categoría principal puedo crear una subcategoría; de esta subcategoría puedo crearle otra sub-subcategoría y así consecutivamente. De esa manera se va creando un árbol del cual yo genero un menú JavaScript.

Mi problema es cómo poner esto en una base de datos, de manera que el usuario pueda crear tantas subcategorías como desee.

Gracias de antemano.
Always Perl :)
bAsTeR
Perlero nuevo
Perlero nuevo
 
Mensajes: 63
Registrado: 2008-10-28 11:29 @520
Ubicación: Chihuahua, Chih. Mexico

Publicidad

Notapor explorer » 2009-01-31 14:59 @666

Si la información que tiene cada categoría es igual a las demás, entonces te vale con guardar la información en una tabla.

Cada registro de la tabla debe indicar a qué categoría padre pertenece. Así, cuando presentes un nivel de categoría, solo tienes que hacer una consulta en la tabla para buscar aquellas categorías que cuelgan de ella.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor bAsTeR » 2009-01-31 16:56 @747

¿Cómo? O sea, guardar toda la información en una sola tabla.

No entiendo bien. ¿Cómo puedo yo sacar el árbol de categorías con los registros teniendo solamente el padre de categoría?

¿Podrías explicármelo de manera más simple?, jeje, es que estoy muy perdido.

Gracias.
Always Perl :)
bAsTeR
Perlero nuevo
Perlero nuevo
 
Mensajes: 63
Registrado: 2008-10-28 11:29 @520
Ubicación: Chihuahua, Chih. Mexico

Notapor explorer » 2009-01-31 17:26 @768

En una tabla, cada categoría tiene un campo (categoria_padre) que indica el número de la categoría padre a la que pertenece.

Cuando quieras pintar las subcategorías de una categoría X, haces una consulta a la base de datos, seleccionando aquellas categorías que tienen en el campo categoria_padre igual al valor X.

Y esto lo puedes repetir para cada nivel de presentación.

Esto es lo que se llama en Estructuras de Datos Base de datos jerárquica. En la versión inglesa de la página tienes un pequeño ejemplo.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor bAsTeR » 2009-01-31 17:54 @787

Genial, justo lo que necesitaba, ¿cómo es posible que siempre tienes las respuestas tan rápido?, ¿cómo lo haces?

Gracias.
Always Perl :)
bAsTeR
Perlero nuevo
Perlero nuevo
 
Mensajes: 63
Registrado: 2008-10-28 11:29 @520
Ubicación: Chihuahua, Chih. Mexico

Notapor explorer » 2009-01-31 18:14 @801

Me debo estar haciendo viejo...

La verdad, es el fruto de una buena educación en informática teórica. Mucho de leer y probar, teoría y práctica. Sobre todo, leer y aprender.

Y saber buscar cuando no se sabe.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor explorer » 2009-02-01 12:07 @547

Encontré un módulo en Perl que hace justamente eso: Tree::Numbered::DB.

(ya me extraña que no existiera)
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor bAsTeR » 2009-02-04 20:59 @916

Bien, probaré ese módulo en mi siguiente proyecto porque gracias a la técnica que me comentaste pude terminar mi proyecto anterior. Gracias por la información.

Salu2
Always Perl :)
bAsTeR
Perlero nuevo
Perlero nuevo
 
Mensajes: 63
Registrado: 2008-10-28 11:29 @520
Ubicación: Chihuahua, Chih. Mexico

Notapor bAsTeR » 2009-02-09 19:07 @838

Excelente, ahora estoy teniendo problemas para desplegar el árbol con todas las categorías, sé que debo utilizar recursividad en mi función pero me arroja error al utilizar recursividad.

Alguien me comento que al utilizar recursividad en Perl debo de utilizar una diagonal o algo así pero no encontré nada al respecto.
Always Perl :)
bAsTeR
Perlero nuevo
Perlero nuevo
 
Mensajes: 63
Registrado: 2008-10-28 11:29 @520
Ubicación: Chihuahua, Chih. Mexico

Notapor explorer » 2009-02-10 05:18 @262

¿Qué error te sale?

¿Diagonal? Es la primera vez que oigo ese término hablando de recursividad...
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Web

¿Quién está conectado?

Usuarios navegando por este Foro: Bing [Bot], Google [Bot] y 3 invitados