AttendanceManager.sql
per Victor Carceler
—
darrera modificació
2020-03-25T15:28:12+01:00
AttendanceManager.sql — 7.2 KB
Continguts del fitxer
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL'; DROP SCHEMA IF EXISTS `amdb` ; CREATE SCHEMA IF NOT EXISTS `amdb` DEFAULT CHARACTER SET utf8 ; USE `amdb`; -- ----------------------------------------------------- -- Table `amdb`.`teacher` -- ----------------------------------------------------- DROP TABLE IF EXISTS `amdb`.`teacher` ; CREATE TABLE IF NOT EXISTS `amdb`.`teacher` ( `idteacher` INT NOT NULL AUTO_INCREMENT , `login` VARCHAR(45) NOT NULL , `password` VARCHAR(45) NOT NULL COMMENT 'SHA1(\"password\")' , `fullname` VARCHAR(45) NULL , `email` VARCHAR(255) NULL , `comment` VARCHAR(255) NULL , `admin` TINYINT(1) NOT NULL DEFAULT FALSE COMMENT 'Admin users can edit:\nteacher, student, subject, group and classblock' , PRIMARY KEY (`idteacher`) , UNIQUE INDEX `login` (`login` ASC) ) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8; -- ----------------------------------------------------- -- Table `amdb`.`student` -- ----------------------------------------------------- DROP TABLE IF EXISTS `amdb`.`student` ; CREATE TABLE IF NOT EXISTS `amdb`.`student` ( `idstudent` INT NOT NULL AUTO_INCREMENT , `surname1` VARCHAR(45) NULL , `surname2` VARCHAR(45) NULL , `name` VARCHAR(45) NOT NULL , `email` VARCHAR(255) NULL DEFAULT NULL COMMENT 'para la notificación de faltas e incidencias' , `smsphone` VARCHAR(45) NULL DEFAULT NULL COMMENT 'Teléfono para notificaciones' , PRIMARY KEY (`idstudent`) ) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8; -- ----------------------------------------------------- -- Table `amdb`.`subject` -- ----------------------------------------------------- DROP TABLE IF EXISTS `amdb`.`subject` ; CREATE TABLE IF NOT EXISTS `amdb`.`subject` ( `idsubject` INT NOT NULL AUTO_INCREMENT , `name` VARCHAR(45) NOT NULL , `comment` VARCHAR(255) NULL , PRIMARY KEY (`idsubject`) , UNIQUE INDEX `name` (`name` ASC) ) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8; -- ----------------------------------------------------- -- Table `amdb`.`group` -- ----------------------------------------------------- DROP TABLE IF EXISTS `amdb`.`group` ; CREATE TABLE IF NOT EXISTS `amdb`.`group` ( `idgroup` INT NOT NULL AUTO_INCREMENT , `name` VARCHAR(45) NOT NULL , `comment` VARCHAR(255) NULL , `teacher_idteacher` INT NULL , PRIMARY KEY (`idgroup`) , UNIQUE INDEX `name` (`name` ASC) , INDEX `fk_group_teacher1` (`teacher_idteacher` ASC) , CONSTRAINT `fk_group_teacher1` FOREIGN KEY (`teacher_idteacher` ) REFERENCES `amdb`.`teacher` (`idteacher` ) ON DELETE SET NULL ON UPDATE NO ACTION) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8; -- ----------------------------------------------------- -- Table `amdb`.`term` -- ----------------------------------------------------- DROP TABLE IF EXISTS `amdb`.`term` ; CREATE TABLE IF NOT EXISTS `amdb`.`term` ( `idterm` INT NOT NULL AUTO_INCREMENT , `name` VARCHAR(45) NOT NULL , `comment` VARCHAR(255) NULL , `start` DATE NOT NULL , `end` DATE NOT NULL , PRIMARY KEY (`idterm`) , UNIQUE INDEX `name` (`name` ASC) ) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8; -- ----------------------------------------------------- -- Table `amdb`.`classblock` -- ----------------------------------------------------- DROP TABLE IF EXISTS `amdb`.`classblock` ; CREATE TABLE IF NOT EXISTS `amdb`.`classblock` ( `idclassblock` INT NOT NULL AUTO_INCREMENT , `teacher_idteacher` INT NOT NULL , `subject_idsubject` INT NOT NULL , `group_idgroup` INT NOT NULL , `term_idterm` INT NOT NULL , `day_of_week` INT NOT NULL COMMENT '1=sunday,\n2=monday,\n...' , `start` TIME NOT NULL , `end` TIME NOT NULL , PRIMARY KEY (`idclassblock`) , INDEX `fk_classblock_subject1` (`subject_idsubject` ASC) , INDEX `fk_classblock_group1` (`group_idgroup` ASC) , INDEX `fk_classblock_term1` (`term_idterm` ASC) , INDEX `fk_classblock_teacher1` (`teacher_idteacher` ASC) , CONSTRAINT `fk_classblock_subject1` FOREIGN KEY (`subject_idsubject` ) REFERENCES `amdb`.`subject` (`idsubject` ) ON DELETE CASCADE ON UPDATE NO ACTION, CONSTRAINT `fk_classblock_group1` FOREIGN KEY (`group_idgroup` ) REFERENCES `amdb`.`group` (`idgroup` ) ON DELETE CASCADE ON UPDATE NO ACTION, CONSTRAINT `fk_classblock_term1` FOREIGN KEY (`term_idterm` ) REFERENCES `amdb`.`term` (`idterm` ) ON DELETE CASCADE ON UPDATE NO ACTION, CONSTRAINT `fk_classblock_teacher1` FOREIGN KEY (`teacher_idteacher` ) REFERENCES `amdb`.`teacher` (`idteacher` ) ON DELETE CASCADE ON UPDATE NO ACTION) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8; -- ----------------------------------------------------- -- Table `amdb`.`miss` -- ----------------------------------------------------- DROP TABLE IF EXISTS `amdb`.`miss` ; CREATE TABLE IF NOT EXISTS `amdb`.`miss` ( `idmiss` INT NOT NULL AUTO_INCREMENT , `type` INT NOT NULL COMMENT 'Permite distinguir entre: falta, falta justificada, incidencia, expulsión\n' , `date` DATE NOT NULL , `comment` VARCHAR(255) NULL , `student_idstudent` INT NOT NULL , `teacher_idteacher` INT NOT NULL , `subject_idsubject` INT NOT NULL , `classblock_idclassblock` INT NOT NULL , PRIMARY KEY (`idmiss`) , INDEX `fk_miss_student1` (`student_idstudent` ASC) , INDEX `fk_miss_teacher1` (`teacher_idteacher` ASC) , INDEX `fk_miss_subject1` (`subject_idsubject` ASC) , INDEX `fk_miss_classblock1` (`classblock_idclassblock` ASC) , CONSTRAINT `fk_miss_student1` FOREIGN KEY (`student_idstudent` ) REFERENCES `amdb`.`student` (`idstudent` ) ON DELETE CASCADE ON UPDATE NO ACTION, CONSTRAINT `fk_miss_teacher1` FOREIGN KEY (`teacher_idteacher` ) REFERENCES `amdb`.`teacher` (`idteacher` ) ON DELETE CASCADE ON UPDATE NO ACTION, CONSTRAINT `fk_miss_subject1` FOREIGN KEY (`subject_idsubject` ) REFERENCES `amdb`.`subject` (`idsubject` ) ON DELETE CASCADE ON UPDATE NO ACTION, CONSTRAINT `fk_miss_classblock1` FOREIGN KEY (`classblock_idclassblock` ) REFERENCES `amdb`.`classblock` (`idclassblock` ) ON DELETE CASCADE ON UPDATE NO ACTION) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8; -- ----------------------------------------------------- -- Table `amdb`.`group_has_student` -- ----------------------------------------------------- DROP TABLE IF EXISTS `amdb`.`group_has_student` ; CREATE TABLE IF NOT EXISTS `amdb`.`group_has_student` ( `group_idgroup` INT NOT NULL , `student_idstudent` INT NOT NULL , PRIMARY KEY (`group_idgroup`, `student_idstudent`) , INDEX `fk_grupo_has_alumno_group1` (`group_idgroup` ASC) , INDEX `fk_grupo_has_alumno_student1` (`student_idstudent` ASC) , CONSTRAINT `fk_grupo_has_alumno_group1` FOREIGN KEY (`group_idgroup` ) REFERENCES `amdb`.`group` (`idgroup` ) ON DELETE CASCADE ON UPDATE NO ACTION, CONSTRAINT `fk_grupo_has_alumno_student1` FOREIGN KEY (`student_idstudent` ) REFERENCES `amdb`.`student` (`idstudent` ) ON DELETE CASCADE ON UPDATE NO ACTION) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8; SET SQL_MODE=@OLD_SQL_MODE; SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;