Hola. Tengo una duda relativa a las claves foráneas.
Tengo las siguientes tablas. Para no delegar la integridad en la aplicación, decidí añadir claves foráneas pero no termino de comprender el funcionamiento. Dejo las tres tablas que quisiera conectar:
Código SQL:
Ver originalCREATE TABLE usuarios (
id INT NOT NULL AUTO_INCREMENT,
nombre VARCHAR(50) NOT NULL,
apellido VARCHAR(50) NOT NULL,
activo tinyint(1) NOT NULL DEFAULT 0,
dni VARCHAR(10),
observaciones longtext,
INDEX (id),
PRIMARY KEY (id)) engine=InnoDB;
CREATE TABLE usuarios_aux_nivel_acceso (
id INT NOT NULL AUTO_INCREMENT,
id_usuario INT NOT NULL,
id_nivel_acceso INT NOT NULL,
INDEX (id),
INDEX (id_usuario),
INDEX (id_nivel_acceso),
PRIMARY KEY (id)) engine=InnoDB;
CREATE TABLE aux_nivel_acceso (
id INT NOT NULL AUTO_INCREMENT,
nivel INT NOT NULL,
nombre VARCHAR(30) NOT NULL,
descripcion longtext NOT NULL,
INDEX (id),
PRIMARY KEY (id)) engine=InnoDB;
ALTER TABLE usuarios_aux_nivel_acceso ADD CONSTRAINT fk_nivel_acceso_nivel FOREIGN KEY (id_nivel_acceso) REFERENCES aux_nivel_acceso(id);
ALTER TABLE usuarios_aux_nivel_acceso ADD CONSTRAINT fk_nivel_acceso_usuario FOREIGN KEY (id_usuario) REFERENCES usuarios(id);
[/CODE]
Gracias!