Cita:
Iniciado por ramonw Hola, me parece que no podés tener 2 PRIMARY KEY
Código PHP:
Ver originalPRIMARY
KEY (`tareas_id_tarea`
, `ordenes_trabajo_id_ot`
) ,
Además las columnas involucradas en la clave foránea y en la clave referenciada deben tener iguales tipos de datos, fijate esto en la otra tabla.
Eso no son dos PK, sino
una PK de dos campos...
Respecto al problema, la cosa sería:
- La tabla
Trabajos es la representación N:M entre
Tareas y
Ordenes_Trabajo.
- En ese contexto, corresponde que la PK de la tabla
Trabajos esté compuesta por la PK de las otras dos tablas.
- Eso implica que cada valor de ID de la tabla
Ordenes_Trabajo se relaciona
una sola vez con uno o más de un registro de la tabla Tareas,
pero sólo con un ID por vez.
- De eso se infiere que en una Orden de Trabajo, cada tarea sólo puede aparecer una sola vez, y nada más.
- En ese contexto, el diseño de la tabla:
Código MySQL:
Ver original PRIMARY KEY (`tareas_id_tarea`, `ordenes_trabajo_id_ot`) , INDEX `fk_trabajos_tareas1` (`tareas_id_tarea` ASC) , INDEX `fk_trabajos_ordenes_trabajo1` (`ordenes_trabajo_id_ot` ASC) , REFERENCES `sav_muller`.
`ordenes_trabajo` (`id_ot` )
es completamente correcto, así que lo que estás tratando de meter en la tabla
Trabajos es dos veces la misma tarea con la misma orden de trabajo y eso no es razonable.
Así pues, en principio lo que parece es que lo que estás haciendo es mal las inserciones, y no el diseño de la tabla.