entiendo lo que quieres decir, yo conserve el tipo de dato serial para los campos id precisamente por mantener la naturaleza del campo y no declarar un id serial en una tabla y luego declarar ese mismo campo con otro tipo de dato en otra tabla por eso pregunto como lo hacen en mysql cuando declaran una llave foranea en la tabla B que obviamente es llave primaria en otra tabla A y además es AI y además esa tabla B ya tiene una llave primaria AI.
especifico lo que hago en postgresql donde la tabla equipos define como llaves foraneas los campos idubica y idprotocolo los cuales son llaves primarias en sus respectivas tablas. ¿ cual es la manera correcta de hacerlo en mysql? ya que esto en porsgresql funciona correctamente y permite relacionar las tablas si generar redundancia el cual es el objetivo del modelo E-R
Código SQL:
Ver originalCREATE TABLE ubicacion
(
idubica serial NOT NULL,
descripcion CHARACTER(200),
CONSTRAINT idubica_pk PRIMARY KEY (idubica)
);
CREATE TABLE protocolos
(
idprotocolo serial,
nombrequipo CHARACTER (100),
descripcion CHARACTER (3000),
CONSTRAINT idprotocolo_pk PRIMARY KEY (idprotocolo)
);
CREATE TABLE equipos
(
idprotocolo serial,
responsablemanten CHARACTER(100),
idequipo serial,
num_inv CHARACTER(100) NOT NULL,
nom_eq CHARACTER(100),
modelo CHARACTER(100),
marca CHARACTER(100),
num_serie CHARACTER(100),
estado CHARACTER(100),
garantia CHARACTER(30),
idubica serial,
clasificacion CHARACTER(100),
corriente CHARACTER(100),
voltaje CHARACTER(100),
frecuencia CHARACTER(100),
potencia CHARACTER(100),
invima CHARACTER(100),
funcion_equipo CHARACTER(500),
preventivo CHARACTER(50),
tipo CHARACTER(100),
imagen CHARACTER(100),
CONSTRAINT num_inv_pk PRIMARY KEY (num_inv),
CONSTRAINT idprotocolo_fk FOREIGN KEY (idprotocolo) REFERENCES protocolos,
CONSTRAINT idubica_fk FOREIGN KEY (idubica) REFERENCES ubicacion
ON UPDATE CASCADE ON DELETE CASCADE
);