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

Relacionar tablas

Estas en el tema de Relacionar tablas en el foro de Mysql en Foros del Web. Hola Quiero crear una base de datos para un artista y toda sus discografía. He pensado en crear tres tablas: Discos(id, titulo, año, discografia, portada) ...
  #1 (permalink)  
Antiguo 16/05/2011, 05:19
 
Fecha de Ingreso: septiembre-2006
Mensajes: 233
Antigüedad: 17 años, 6 meses
Puntos: 0
Relacionar tablas

Hola
Quiero crear una base de datos para un artista y toda sus discografía.
He pensado en crear tres tablas:
Discos(id, titulo, año, discografia, portada)
Canciones(id, id_letras, id_disco)
Letras_canciones(id, titulo_cancion, letra_cancion)

Despues tendría que relacionar estas tres tablas, aún no sé cómo hacerlo pero leyendo he visto en algunos sitios que para relacionar tablas el motor de almacenamiento de la tabla debe ser innoDB en lugar de MyISAM
¿es eso cierto?¿por qué?

Gracias.

Un saludo.
  #2 (permalink)  
Antiguo 16/05/2011, 06:01
 
Fecha de Ingreso: febrero-2010
Mensajes: 295
Antigüedad: 14 años, 2 meses
Puntos: 58
Respuesta: Relacionar tablas

Hola trhipahx.

Con innoDB puedes especificar claves foráneas. De todas formas, para relacionar varias tablas no se necesitan claves foráneas, éstas solo son útiles para mantener la integridad referencial en la base de datos, es decir, que no puedas meter registros que no corresponden o que si borras un registro en una tabla se te borren en las demás tablas sin tener que preocuprate por ello, no se si me he explicado bien.
La cosa es que si sabes lo que estás haciendo, si sabes que si borras un registro de una tabla lo tienes que borrar en las demás, etc, no necesitas las claves foráneas, pero con estas claves siempre estarás más seguro de que estás haciendo las cosas bien (siempre que la base de datos esté bien diseñada, claro).
  #3 (permalink)  
Antiguo 16/05/2011, 06:19
 
Fecha de Ingreso: febrero-2010
Mensajes: 295
Antigüedad: 14 años, 2 meses
Puntos: 58
Respuesta: Relacionar tablas

Con respecto al diseño que has hecho, yo no lo haría así. Teniendo en cuenta que una canción puede estar en varios discos (por aquello de los recopilatorios) tienes una relación n:n entre discos y canciones con lo que necesitas una tabla para relacionar los discos y las canciones. Yo pondría 3 tablas también, pero no como las has puesto tú.

Tabla Discos: id_disco(primary key), titulo, año, portada, ¿discografia?(no se a que te refieres)

Tabla Canciones: id_cancion(primary key), titulo, letra

Tabla disco_cancion: id_disco, id_cancion (primary key: id_disco, id_cancion)), (foreign key: id_disco references Discos), (foreign key: id_cancion references Canciones)

Yo creo que así puedes relacionar bien las tablas, no se si me he equivocado en algo.

Esta pregunta, de todas formas, debería ir en la sección de base de datos. Ahí seguro que los gurús de las bases de datos te contestan mucho mejor que yo.

Un saludo.
  #4 (permalink)  
Antiguo 17/05/2011, 04:15
 
Fecha de Ingreso: septiembre-2006
Mensajes: 233
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: Relacionar tablas

Gracias a los dos.

Voy a probar y os cuento.

Etiquetas: php, relacionar, 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 00:13.