Hola amigos , tengo un problema al relacionar dos tablas en mysql , el problema , no se si llamarlo asi es el siguiente :
tengo dos tablas , en una profesores tengo la primary key compuesta por el nombre , apellidos y el nombre del centro de trabajo , porque he elegido estos tres campos para crear una clave primaria compuesta? , porque el dni , que seria lo ideal no esta disponible como opcion , y como dos profesores de distintos centros se pueden llamar igual ( hay un par que se apellidan igual , por increible que parezca ) poniendo el centro tambien , ya es muy dificil , por no decir imposible , que en el mismo centro docente dos profesores se llamen y apelliden idenicamente .
en la segunda tabla tengo las asignaturas ,; cada profesor de ese centro tiene una especialidad , que no tiene otro profesor del centro ( podria haber varios profesores en el centro que tambien tienen esa especialidad en cuyo caso seria una relacion N:N y habria que crear otra tabla con la relacion y sus atributos , mas las claves primarias de las otras dos entidades ) y llego al qui de la cuestion despues del rollo , al intentar asignar las foreign key nombre apellidos y centro que aparecen en asignatura como foraneas de nombre ,apellidos y centro de la primaria de la tabla profesores solo me coge un campo como foranea pero los otros dos no .
pongamos que escribo la sentencia :
alter table asignaturas add foreign key (nombre_prof,apellidos_prof,centro_prof) references profesores (nombre,apellidos,centro)
y no me da ningun error , la sentencia se valida como buena , pero al hacer :
describe asignaturas
ma aparece en el campo key : asignatura PRI , nombre MUL y apellidos y centro no tienen nada en el campo key .
y aqui despues de todo el rollo pesado este que acabo de soltar viene la pregunta final :
es esto correcto? quiero decir , lo he hecho bien y solo debe aparecer un campo MUL de las tres foraneas , para la clave primaria compuesta por tres campos de la otra tabla ?
es que segun el manual para una clave primaria compuesta , hacen falta los mismos campos para la clave foranea. tambien he intentado añadirlas una a una pero me da el error de cannot add constraint ....blablabla
espero no haber sido un pesado pero queria explicarme lo mas claramente posible , un abrazo fuerte y gracias.