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

Sistema de playlists sin creación de más tablas? es posible?

Estas en el tema de Sistema de playlists sin creación de más tablas? es posible? en el foro de Mysql en Foros del Web. Bien, tengo un sistema de playlists dinamicas. Los usuarios pueden crear, borrar playlists, crear borrar canciones de sus playlists y cambiarlas de orden. El problema ...
  #1 (permalink)  
Antiguo 29/01/2012, 05:05
 
Fecha de Ingreso: septiembre-2011
Mensajes: 36
Antigüedad: 13 años, 1 mes
Puntos: 0
Sistema de playlists sin creación de más tablas? es posible?

Bien, tengo un sistema de playlists dinamicas. Los usuarios pueden crear, borrar playlists, crear borrar canciones de sus playlists y cambiarlas de orden. El problema es que cada vez que un usuario se crea una playlist, se crea una tabla.
Acabao de leer que el hecho de que la web cree tablas de manera dinamica es peligroso porque podria haber demasiadas tablas.
El problema es que mi sistema de playlists reside sobre este principio:
[URL="http://biostall.com/generating-a-dynamic-xml-or-text-playlist-using-php"]http://biostall.com/generating-a-dynamic-xml-or-text-playlist-using-php[/URL] es decir una linea por cancion, una tabla por playlist.

Es el sistema que tengo ahora es malo o peligroso? como podria mejorarlo? (porque he pensado en hacer estilo por columnas: song_1 ; song_2; song_· etc.. y poner un limite. pero tambien me han dicho que demasiadas columnas en una tabla también es malo)

Gracias.
Y perdon si lo que pregunto es muy basico.
  #2 (permalink)  
Antiguo 29/01/2012, 09:53
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Sistema de playlists sin creación de más tablas? es posible?

No es que la pregunta sea básica, es que con lo que planteas se percibe que no conoces ni los fundamentos de las bases de datos, ni el modelo E-R aplicado a BBDD, o por lo menos, jamás has oído hablar de Normalización de Bases de Datos.
Resulta algo difícil explicar claramente por qué el modelo que usas está mal pensado, es ineficiente, no optimizable y de compleja corrección o mejora. Te faltan detalles básicos de diseño.
Veamos.
Una base de datos se basa en el paradigma Entidad - Relación. Allí todo lo representable, físico o no, son Entidades que engloban objetos que poseen el mismo conjunto de atributos (que no quiere decir los mismos datos). De esa forma, una misma entidad puede contener diferentes instancias, cada una de ellas referida a un único objeto del universo.
COno son generalizaciones, no requieren más que un único almacenamiento o tabla para ser guardados. ASí, una "lista de temas" es una entidad única que contiene N listas.
¿Se entiende?
No necesitas N tablas para N listas. Lo que necesitas es una sola tabla con un identificador único, cada una de ellas relacionada a otra, que puedes denominar "detalleDeLista", donde se guardan todos los componentes de todas las listas, cada una conteniendo el identificador de a qué lista pertenece y en qué orden.
Es decir que con dos únicas tablas puedes administrar N listas y N temas de cada lista...
Todo eso surge de los principios del modelo E-R y de las Bases de Datos Relacionales.

Creo que debes volver al diagrama y empezar de cero. Luego veremos qué se debe modificar en la aplicación para poder usar ese diseño de base.

La idea sería mas o menos así, cambiando la tabla messages por listadetemas:, por ejemplo:

__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: lineas, php, playlist, rows, tablas
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 12:13.