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

Dudas con claves foraneas en MySQL

Estas en el tema de Dudas con claves foraneas en MySQL en el foro de Bases de Datos General en Foros del Web. Hola a todos. Estoy usando el programa MySQL Workbench para realizar la estructura de una base de datos. Me ha surgido una duda y me ...
  #1 (permalink)  
Antiguo 02/10/2012, 09:40
 
Fecha de Ingreso: abril-2009
Ubicación: Barcelona
Mensajes: 113
Antigüedad: 15 años, 7 meses
Puntos: 9
Pregunta Dudas con claves foraneas en MySQL

Hola a todos.

Estoy usando el programa MySQL Workbench para realizar la estructura de una base de datos.
Me ha surgido una duda y me gustaría saber si me la podéis aclarar.

Tengo una tabla de usuarios la cual se relaciona con otras dos tablas una de país y otra de idiomas. Esas dos tablas tengo claro que son relación 1:n y en la tabla de usuarios están sus respectivas claves foraneas.

Vale. Ahora quiero relacionar esa tabla usuarios con otra tabla denominada autobús. Está claro que eso es una relación n:m y por lo tanto necesito una tabla intermedia. Yo hubiera puesto en la tabla por ejemplo; idusuario e idautobus
y con eso ya tendría la relación. Creo.

Y digo creo porque el programa me crea una tabla donde aparte de idusuario e idautobus me añade también las claves foraneas de la tabla usuario.

Yo creo que país e idioma podría borrarlas tranquilamente porque no creo que sean necesarias en esa tabla para el correcto funcionamiento, pero no se porque el programa lo hace... igual es por algo que se me escapa a mi, o realmente no es relevante no se...

Adjunto una imagen para que quede un poco más claro lo que quiero decir.



Espero haberme explicado y que me puedan ayudar.

Gracias.
  #2 (permalink)  
Antiguo 02/10/2012, 10:58
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: Dudas con claves foraneas en MySQL

Cita:
Y digo creo porque el programa me crea una tabla donde aparte de idusuario e idautobus me añade también las claves foráneas de la tabla usuario.
Porque el conector de las relaciones Pais<- Usuario e Idioma <-Usuario es incorrecto. Usaste un conector de relación identificatoria y debes usar uno de relaciones no identificatorias.
la diferencia es que las identificatorias hacen que las PK de las tablas referidas sean parte de la PK de la tabla donde estén como FK, y no es el caso.
Si te fijas, la PK de Usuario ha quedado definida como de tres campos.
Quita los campos y las relaciones y vuelve a definirlas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 02/10/2012, 11:14
 
Fecha de Ingreso: abril-2009
Ubicación: Barcelona
Mensajes: 113
Antigüedad: 15 años, 7 meses
Puntos: 9
Respuesta: Dudas con claves foraneas en MySQL

Creo que lo he entendido porque al volver a hacerlo me sale como yo me suponía que debía de ser. Yo siempre usaba las identificadoras cuando me da la sensación de que son las que se usan menos a menudo. Al menos esa sensación me está dando ahora.

Esta vez me queda así que creo que es lo correcto y como tu me indicas...



Muchas gracias por tu ayuda.

Etiquetas: claves, dudas, mysql, relacion, tabla, foreignkey
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 22:59.