Comunidad de diseño web y desarrollo en internet online

EStructura de Una Base de Datos para un sello discográfico

Citar            
MensajeEscrito el 15 Jul 2008 07:59 am
Hola

Mi consulta es sencilla: Debo crear una base de datos MySQL con artistas, discos y canciones.

Cual es la estructura correcta?

Entiendo que lo mejor es:

Una tabla para los artistas (nombre, pais, email, etc..)

y

a) Una tabla para todos los discos, con un numero de campos variable para las canciones

b) Una tabla por cada Disco, con sus canciones

c) Una tabla de canciones, que tendrá el campo "Disco" repetido para cada grupo de canciones por disco

El numero total de discos será por debajo de los 200

Espero sus sugerencias. No veo el problema por la parte técnica, pero quiero hacer una buena estructura que no me de problemas en el futuro.

Gracias

Por daTo

15 de clabLevel



Genero:Masculino  

Barcelona

firefox
Citar            
MensajeEscrito el 15 Jul 2008 09:48 am
Para mi que te sobra una tabla:
a)artistas
b)discos(se relaciona con artista por id_artista)
c)canciones(se relaciona con discos por id_disco)

Por One

Claber

1488 de clabLevel

5 tutoriales

Genero:Masculino  

Programador Web

firefox
Citar            
MensajeEscrito el 15 Jul 2008 10:44 am
Gracias One, voy a probar tu estructura, creo que tienes razón.

un saludo

Por daTo

15 de clabLevel



Genero:Masculino  

Barcelona

firefox
Citar            
MensajeEscrito el 15 Jul 2008 02:04 pm
capaz q tampoco es necesario tanto... si te pones a investigar un poco, harías un sitio mucho más dinámico usando el ID del disco y vinculandolo con FreeDB (base de datos de discos, accesible a través de un ID casi unico de disco) http://www.freedb.org/ lo que me parece sería más dinámico y más simple para el usuario, ya que no debería estar agregando los datos de los temas de forma manual, idem para el artista...

Por joarobles

753 de clabLevel

8 tutoriales

 

Córdoba - Argentina

firefox
Citar            
MensajeEscrito el 15 Jul 2008 02:32 pm
Gracias, la idea es buena, pero no sirve, se trata de un netlabel (musica con licencia Creative Commons), y ya tenemos los archivos en archive.org y en la database deben estar los links para apuntar allí la descarga directa.

De todas maneras, se agradece, no conocía FreeDB y me lo apunto.

Y si a alguien le interesa la electrónica minimal y experimental, el sello en cuestión está en http://www.inoquo.com. Tenemos ya 43 discos, pero, como se comenzó un poco a saco, los discos hasta ahora, están metidos "a pelo" en el HTML, así que ya tocaba meter MySQL y PHP, proyecto con el que voy a entretenerme este verano.
:wink:

Por daTo

15 de clabLevel



Genero:Masculino  

Barcelona

firefox
Citar            
MensajeEscrito el 15 Jul 2008 03:34 pm
usa una tabla de apoyo (N:M) si una misma cancion va a ir en varios discos. Si no, deberias usar solo dos tablas.

Por neohunter

Claber

563 de clabLevel

1 tutorial

 

Bogota, Colombia

opera
Citar            
MensajeEscrito el 16 Jul 2008 07:45 am
Gracias neohunter, igual hay alguna canción repetida ... pero ... no sé qué es una tabla de apoyo (N:M). Buscando en google se dispersa mucho y no encuentro dónde lo explique .. sabes dónde puedo encontrar alguna explicación y/o ejemplo??
:crap:

Por daTo

15 de clabLevel



Genero:Masculino  

Barcelona

firefox
Citar            
MensajeEscrito el 16 Jul 2008 08:27 am
Tabla Discos (id,nombredisco,artista,fechapublicacion....)
Tabla Canciones(id,nombrecancion,duracion,iddiscodondeaparece)
Si una cancion aparece en dos discos deberias repetir un registro entero en esa tabla.


Para no repetir las canciones que aparezcan en varios discos te crearias una tabla auxilar con:
id,idcancion,iddisco
Entonces harías:

Tabla Discos (id,nombredisco,artista,fechapublicacion....)
Tabla Canciones(id,nombrecancion,duracion,...) Aqui solo insertarias un registro por cancion.
Tabla aux(id,idcancion,iddisco) Aqui ya dirias que cancion aparece en que disco

Creo que eso es lo que se refiere neohunter.

Por One

Claber

1488 de clabLevel

5 tutoriales

Genero:Masculino  

Programador Web

firefox
Citar            
MensajeEscrito el 17 Jul 2008 09:10 am
oK, comprendido, muy buena idea !! Así me evito repetir registros, supongo q puede dar problemas en las búsquedas, etc...

Gracias a tod@s !!

Por daTo

15 de clabLevel



Genero:Masculino  

Barcelona

firefox
Citar            
MensajeEscrito el 17 Jul 2008 11:14 pm
las bases de datos relacionales llevan ese nombre porque su estructura debe estar basada en relaciones. Hay mucha información en google. Los tipos de relaciones son:

1:1 (uno a uno): Un registro en una tabla esta relacionado con un unico registro en otra tabla. (ej, tienes una tabla de usuarios(email,password) y otra de datos de usuario(nombre,telefono,direccion,etc)

1:N (uno a muchos): Un registro en una tabla esta relacionado con muchos registros de otra tabla. (ej, tienes una tabla factura y otra donde estan los productos de la factura, o un disco con muchas canciones)

N:M (muchos a muchos): para este tipo de relaciones se usan las tablas de apoyo.

busca en google, hay mucha informacion y es escencial que entiendas esto. No puedo ser mas explicativo porque voy de salida xD

Por neohunter

Claber

563 de clabLevel

1 tutorial

 

Bogota, Colombia

opera
Citar            
MensajeEscrito el 18 Jul 2008 07:51 am
Gracias por la info, neohunter .. me va a ser muy útil.. captada la esencia, paso a sumergirme en el mundo de las bases de datos relacionales ... ^^

Por daTo

15 de clabLevel



Genero:Masculino  

Barcelona

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.