CREATE TABLE escuela ( id INT NOT NULL, nombre VARCHAR(30), PRIMARY KEY (id) ) ENGINE=INNODB; CREATE TABLE departamento ( id INT NOT NULL, nombre VARCHAR(30), idEscuela INT NOT NULL, idJefe INT NOT NULL, PRIMARY KEY (id), FOREIGN KEY (idEscuela) REFERENCES escuela(id) ON UPDATE CASCADE ON DELETE CASCADE ) ENGINE=INNODB; CREATE TABLE profesor ( id INT NOT NULL, nombre VARCHAR(30), idDepartamento INT NOT NULL, PRIMARY KEY (id), FOREIGN KEY (idDepartamento) REFERENCES departamento(id) ON UPDATE CASCADE ON DELETE CASCADE ) ENGINE=INNODB; CREATE TABLE curso ( id INT NOT NULL, nombre VARCHAR(30), idDepartamento INT NOT NULL, PRIMARY KEY (id), FOREIGN KEY (idDepartamento) REFERENCES departamento(id) ON UPDATE CASCADE ON DELETE CASCADE ) ENGINE=INNODB; CREATE TABLE estudiante ( id INT NOT NULL, nombre VARCHAR(30), idEscuela INT NOT NULL, PRIMARY KEY (id), FOREIGN KEY (idEscuela) REFERENCES escuela(id) ON UPDATE CASCADE ON DELETE CASCADE ) ENGINE=INNODB; CREATE TABLE curso_estudiante ( idCurso INT NOT NULL, idEstudiante INT NOT NULL, calificacion INT, PRIMARY KEY (idCurso, idEstudiante), FOREIGN KEY (idCurso) REFERENCES curso(id) ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY (idEstudiante) REFERENCES estudiante(id) ON UPDATE CASCADE ON DELETE CASCADE ) ENGINE=INNODB; CREATE TABLE curso_profesor ( idCurso INT NOT NULL, idProfesor INT NOT NULL, PRIMARY KEY (idCurso, idProfesor), FOREIGN KEY (idCurso) REFERENCES curso(id) ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY (idProfesor) REFERENCES profesor(id) ON UPDATE CASCADE ON DELETE CASCADE ) ENGINE=INNODB; ALTER TABLE departamento ADD CONSTRAINT FOREIGN KEY (idJefe) REFERENCES profesor(id) ON UPDATE CASCADE ON DELETE CASCADE;
Comments