Ver Mensaje Individual
  #3 (permalink)  
Antiguo 14/09/2013, 13:32
dpruebas
 
Fecha de Ingreso: agosto-2008
Mensajes: 23
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Error al relacionar claves foraneas en Clave compuesta

Gracias por tu respuesta.

Te resumo como quiero que quede con el nivel de detalle posible:

primeratabla
idtabla1 - int UNSIGNED AUTOINCREMENT - PRIMARY
otrocampo
yotro

segundatabla
idtabla2 - smallint(3) UNSIGNED AUTOINCREMENT - PRIMARY
uncampomas
unomas

relacion-primeratabla-segundatabla
idtabla1 -> primeratabla.idtabla1 ON DELETE RESTRICT ON UPDATE CASCADE - int UNSIGNED - FOREIGN
idtabla2 -> segundatabla.idtabla2 ON DELETE RESTRICT ON UPDATE CASCADE - smallint(3) UNSIGNED - FOREIGN
[Juntas son la llave primaria: idtabla1,idtabla2 - PRIMARY]

Como te comentaba, he usado muchas combinaciones para hacerlo:
  • Crear la tabla con las llaves foráneas y primaria.
  • Crear la tabla (relacion-primeratabla-segundatabla) sin llaves. Luego crear las llaves.
  • etc.

Asumiento lo anterior, y que las tablas son sencillas, no se si sería inapropiado preguntarte ¿como crearías tu la tabla y las relaciones en MySQL? (Sería crear la tabla 'relacion-primeratabla-segundatabla' y sus relaciones, las otras dos tablas no tienen problema.)

Sobre las condiciones que comentas, todas se cumplen.
Aunque la 3. no estoy seguro de entenderla muy bien; entiendo que si quisiera apuntar a una llave primaria compuesta (ejp: idtabla1,idtabla2) debo hacerlo con ambos campos (iguales, tipo y todo eso). Entendiéndolo así no creo querer esto, sino lo inverso, apuntar cada campo de la llave a su correspondiente tabla y llave primaria.

Gracias de antemano.