Cita:
Iniciado por KenMasters Buen punto, va asi
TABLA VACUNOS => TABLA PADRE
field de identificación "codigo"
' TABLAS HIJAS
TABLA PRODUCCION , se debe vincular por medio de vacunos.codigo a produccion.codigo
TABLA REPRODUCCION, se debe vincular por medio de vacunos.codigo a reproduccion.codigo
TABLA SANIDAD, se debe vincular por medio de vacunos.codigo a sanidad.vacunocod
A SU VEZ, REPRODUCCION TIENE HIJOS
TABLA SERVICIO , se debe vincular por medio de reproduccion.servicio a servicio.servicioid
TABLA DIAG , se debe vincular por medio de reproduccion.diagnostico a diag.diagnosticoid
TABLA PARTO, se debe vincular por medio de reproduccion.parto a parto.partoid
TABLA ABORTO, se debe vincular por medio de reproduccion.aborto a aborto.id
Bueno, @KenMasters, tu ya tienes definido cuál es el esquema de dependencias funcionales de las tablas... ¿Cuál es tu duda?
Repasemos que para que se pueda crear una FK debe cumplirse que:
1) Toda tabla tenga una PK. Y digo
toda tabla, no puede faltar ninguna.
2) Toda FK apunta a la PK referida.
3) Las FK deben ser del mismo tipo de dato, mismo rango de representación, y si es una PK compuesta, todos sus campos y en el mismo orden.
4) Si la PK es de caracteres (VARCHAR, CHAR), las FK deben ser de misma collation y charset.
5) Toda FK de una relación mandatoria (obligatoria) debe ser declarada NOT NULL.
Adicionalmente, se puede decir:
- Si se intenta crear una FK en una tabla que ya contiene datos,
debe verificarse que los datos existentes cumplan previamente la relación con la tabla referida, ya que si al menos uno de los registros no lo cumple, se generará un error de creación.
- Como extensión propia de MySQL, una FK puede apuntar a una clave UNIQUE. En este caso la clave UNIQUE en la tabla referida
puede poseer valor NULL, pero sólo un registro en esas condiciones. En ese caso la FK podrá aceptar valores NULL en sus registros.
Nota Bene:
Recordar que NULL no es lo mismo que un caracter vacío...
¿Se cumple en tu caso?