266 lines
12 KiB
PHP
266 lines
12 KiB
PHP
<?php
|
|
/**
|
|
* Created by PhpStorm.
|
|
* User: lucas
|
|
* Date: 09/05/18
|
|
* Time: 16:55
|
|
*/
|
|
|
|
namespace database\repo;
|
|
|
|
|
|
use database\core\Repo;
|
|
use database\core\Repo_i;
|
|
|
|
class database extends Repo_i {
|
|
|
|
/**
|
|
* @param int $depId
|
|
* @return String the name of the department database
|
|
* @throws \Exception
|
|
*/
|
|
public function init(int $depId) : String{
|
|
|
|
/** @var department $metaRep */
|
|
$metaRep = Repo::getRepo("department");
|
|
|
|
$SQL = "
|
|
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,ALLOW_INVALID_DATES';
|
|
|
|
-- -----------------------------------------------------
|
|
-- Table `Categorie`
|
|
-- -----------------------------------------------------
|
|
CREATE TABLE IF NOT EXISTS `Categorie` (
|
|
`idCategorie` INT(11) NOT NULL,
|
|
`labelCategorie` VARCHAR(100) NOT NULL,
|
|
PRIMARY KEY (`idCategorie`))
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARACTER SET = latin1;
|
|
|
|
|
|
-- -----------------------------------------------------
|
|
-- Table `Professeur`
|
|
-- -----------------------------------------------------
|
|
CREATE TABLE IF NOT EXISTS `Professeur` (
|
|
`idProfesseur` INT(11) NOT NULL AUTO_INCREMENT,
|
|
`casLogin` VARCHAR(50) NULL DEFAULT NULL,
|
|
`lastName` VARCHAR(50) NULL DEFAULT NULL,
|
|
`firstName` VARCHAR(50) NULL DEFAULT NULL,
|
|
`abreviation` VARCHAR(10) NULL DEFAULT NULL COMMENT 'Abreviation used in the excel document',
|
|
`admin` TINYINT(4) NOT NULL DEFAULT 0,
|
|
`hoursToDo` INT(11) NOT NULL DEFAULT 0,
|
|
`Categorie_idCategorie` INT(11) NOT NULL,
|
|
PRIMARY KEY (`idProfesseur`),
|
|
INDEX `fk_Professeur_Categorie1_idx` (`Categorie_idCategorie` ASC),
|
|
CONSTRAINT `fk_Professeur_Categorie1`
|
|
FOREIGN KEY (`Categorie_idCategorie`)
|
|
REFERENCES `Categorie` (`idCategorie`)
|
|
ON DELETE NO ACTION
|
|
ON UPDATE CASCADE)
|
|
ENGINE = InnoDB
|
|
AUTO_INCREMENT = 34
|
|
DEFAULT CHARACTER SET = latin1;
|
|
|
|
|
|
-- -----------------------------------------------------
|
|
-- Table `Formation`
|
|
-- -----------------------------------------------------
|
|
CREATE TABLE IF NOT EXISTS `Formation` (
|
|
`idFormation` INT(11) NOT NULL AUTO_INCREMENT,
|
|
`labelFormation` VARCHAR(50) NULL DEFAULT NULL,
|
|
`isInternal` TINYINT(4) NULL DEFAULT 1,
|
|
PRIMARY KEY (`idFormation`))
|
|
ENGINE = InnoDB
|
|
AUTO_INCREMENT = 20
|
|
DEFAULT CHARACTER SET = latin1;
|
|
|
|
|
|
-- -----------------------------------------------------
|
|
-- Table `UE`
|
|
-- -----------------------------------------------------
|
|
CREATE TABLE IF NOT EXISTS `UE` (
|
|
`code` VARCHAR(20) NOT NULL,
|
|
`label` VARCHAR(100) NOT NULL,
|
|
`required` TINYINT(4) NOT NULL DEFAULT 1,
|
|
`volumeCours` FLOAT NOT NULL DEFAULT 0,
|
|
`volumeTP` FLOAT NOT NULL DEFAULT 0,
|
|
`volumeTD` FLOAT NOT NULL,
|
|
`disabled` TINYINT(4) NOT NULL DEFAULT 0,
|
|
`Formation_idFormation` INT(11) NULL DEFAULT NULL,
|
|
PRIMARY KEY (`code`),
|
|
INDEX `fk_UE_Formation1_idx` (`Formation_idFormation` ASC),
|
|
CONSTRAINT `fk_UE_Formation1`
|
|
FOREIGN KEY (`Formation_idFormation`)
|
|
REFERENCES `Formation` (`idFormation`)
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARACTER SET = latin1
|
|
COMMENT = 'Table contenant le code et le label des UE';
|
|
|
|
|
|
-- -----------------------------------------------------
|
|
-- Table `Cours`
|
|
-- -----------------------------------------------------
|
|
CREATE TABLE IF NOT EXISTS `Cours` (
|
|
`idCours` INT(11) NOT NULL AUTO_INCREMENT,
|
|
`UE_code` VARCHAR(20) NOT NULL,
|
|
`Professeur_idProfesseur` INT(11) NULL DEFAULT NULL,
|
|
`volume` FLOAT NOT NULL DEFAULT 0,
|
|
PRIMARY KEY (`idCours`),
|
|
INDEX `fk_Cours_UE_idx` (`UE_code` ASC),
|
|
INDEX `fk_Cours_Professeur1_idx` (`Professeur_idProfesseur` ASC),
|
|
CONSTRAINT `fk_Cours_Professeur1`
|
|
FOREIGN KEY (`Professeur_idProfesseur`)
|
|
REFERENCES `Professeur` (`idProfesseur`)
|
|
ON DELETE SET NULL
|
|
ON UPDATE SET NULL,
|
|
CONSTRAINT `fk_Cours_UE`
|
|
FOREIGN KEY (`UE_code`)
|
|
REFERENCES `UE` (`code`)
|
|
ON DELETE CASCADE
|
|
ON UPDATE CASCADE)
|
|
ENGINE = InnoDB
|
|
AUTO_INCREMENT = 88
|
|
DEFAULT CHARACTER SET = latin1;
|
|
|
|
|
|
-- -----------------------------------------------------
|
|
-- Table `GroupeCours`
|
|
-- -----------------------------------------------------
|
|
CREATE TABLE IF NOT EXISTS `GroupeCours` (
|
|
`Formation_idFormation` INT(11) NOT NULL,
|
|
`Cours_idCours` INT(11) NOT NULL,
|
|
PRIMARY KEY (`Formation_idFormation`, `Cours_idCours`),
|
|
INDEX `fk_Formation_has_Cours_Cours1_idx` (`Cours_idCours` ASC),
|
|
INDEX `fk_Formation_has_Cours_Formation1_idx` (`Formation_idFormation` ASC),
|
|
CONSTRAINT `fk_Formation_has_Cours_Cours1`
|
|
FOREIGN KEY (`Cours_idCours`)
|
|
REFERENCES `Cours` (`idCours`)
|
|
ON DELETE CASCADE
|
|
ON UPDATE CASCADE,
|
|
CONSTRAINT `fk_Formation_has_Cours_Formation1`
|
|
FOREIGN KEY (`Formation_idFormation`)
|
|
REFERENCES `Formation` (`idFormation`)
|
|
ON DELETE CASCADE
|
|
ON UPDATE CASCADE)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARACTER SET = latin1;
|
|
|
|
|
|
-- -----------------------------------------------------
|
|
-- Table `TD`
|
|
-- -----------------------------------------------------
|
|
CREATE TABLE IF NOT EXISTS `TD` (
|
|
`idTD` INT(11) NOT NULL AUTO_INCREMENT,
|
|
`UE_code` VARCHAR(20) NOT NULL,
|
|
`Professeur_idProfesseur` INT(11) NULL DEFAULT NULL,
|
|
`volume` FLOAT NOT NULL DEFAULT 0,
|
|
PRIMARY KEY (`idTD`),
|
|
INDEX `fk_TD_UE1_idx` (`UE_code` ASC),
|
|
INDEX `fk_TD_Professeur1_idx` (`Professeur_idProfesseur` ASC),
|
|
CONSTRAINT `fk_TD_Professeur1`
|
|
FOREIGN KEY (`Professeur_idProfesseur`)
|
|
REFERENCES `Professeur` (`idProfesseur`)
|
|
ON DELETE SET NULL
|
|
ON UPDATE SET NULL,
|
|
CONSTRAINT `fk_TD_UE1`
|
|
FOREIGN KEY (`UE_code`)
|
|
REFERENCES `UE` (`code`)
|
|
ON DELETE CASCADE
|
|
ON UPDATE CASCADE)
|
|
ENGINE = InnoDB
|
|
AUTO_INCREMENT = 107
|
|
DEFAULT CHARACTER SET = latin1;
|
|
|
|
|
|
-- -----------------------------------------------------
|
|
-- Table `GroupeTD`
|
|
-- -----------------------------------------------------
|
|
CREATE TABLE IF NOT EXISTS `GroupeTD` (
|
|
`Formation_idFormation` INT(11) NOT NULL,
|
|
`TD_idTD` INT(11) NOT NULL,
|
|
PRIMARY KEY (`Formation_idFormation`, `TD_idTD`),
|
|
INDEX `fk_Formation_has_TD_TD1_idx` (`TD_idTD` ASC),
|
|
INDEX `fk_Formation_has_TD_Formation1_idx` (`Formation_idFormation` ASC),
|
|
CONSTRAINT `fk_Formation_has_TD_Formation1`
|
|
FOREIGN KEY (`Formation_idFormation`)
|
|
REFERENCES `Formation` (`idFormation`)
|
|
ON DELETE CASCADE
|
|
ON UPDATE CASCADE,
|
|
CONSTRAINT `fk_Formation_has_TD_TD1`
|
|
FOREIGN KEY (`TD_idTD`)
|
|
REFERENCES `TD` (`idTD`)
|
|
ON DELETE CASCADE
|
|
ON UPDATE CASCADE)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARACTER SET = latin1;
|
|
|
|
|
|
-- -----------------------------------------------------
|
|
-- Table `TP`
|
|
-- -----------------------------------------------------
|
|
CREATE TABLE IF NOT EXISTS `TP` (
|
|
`idTP` INT(11) NOT NULL AUTO_INCREMENT,
|
|
`UE_code` VARCHAR(20) NOT NULL,
|
|
`Professeur_idProfesseur` INT(11) NULL DEFAULT NULL,
|
|
`volume` FLOAT NOT NULL DEFAULT 0,
|
|
PRIMARY KEY (`idTP`),
|
|
INDEX `fk_TP_UE1_idx` (`UE_code` ASC),
|
|
INDEX `fk_TP_Professeur1_idx` (`Professeur_idProfesseur` ASC),
|
|
CONSTRAINT `fk_TP_Professeur1`
|
|
FOREIGN KEY (`Professeur_idProfesseur`)
|
|
REFERENCES `Professeur` (`idProfesseur`)
|
|
ON DELETE SET NULL
|
|
ON UPDATE SET NULL,
|
|
CONSTRAINT `fk_TP_UE1`
|
|
FOREIGN KEY (`UE_code`)
|
|
REFERENCES `UE` (`code`)
|
|
ON DELETE CASCADE
|
|
ON UPDATE CASCADE)
|
|
ENGINE = InnoDB
|
|
AUTO_INCREMENT = 164
|
|
DEFAULT CHARACTER SET = latin1;
|
|
|
|
|
|
-- -----------------------------------------------------
|
|
-- Table `GroupeTP`
|
|
-- -----------------------------------------------------
|
|
CREATE TABLE IF NOT EXISTS `GroupeTP` (
|
|
`Formation_idFormation` INT(11) NOT NULL,
|
|
`TP_idTP` INT(11) NOT NULL,
|
|
PRIMARY KEY (`Formation_idFormation`, `TP_idTP`),
|
|
INDEX `fk_Formation_has_TP_TP1_idx` (`TP_idTP` ASC),
|
|
INDEX `fk_Formation_has_TP_Formation1_idx` (`Formation_idFormation` ASC),
|
|
CONSTRAINT `fk_Formation_has_TP_Formation1`
|
|
FOREIGN KEY (`Formation_idFormation`)
|
|
REFERENCES `Formation` (`idFormation`)
|
|
ON DELETE CASCADE
|
|
ON UPDATE CASCADE,
|
|
CONSTRAINT `fk_Formation_has_TP_TP1`
|
|
FOREIGN KEY (`TP_idTP`)
|
|
REFERENCES `TP` (`idTP`)
|
|
ON DELETE CASCADE
|
|
ON UPDATE CASCADE)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARACTER SET = latin1;
|
|
|
|
|
|
SET SQL_MODE=@OLD_SQL_MODE;
|
|
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
|
|
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
|
|
|
|
LOCK TABLES `Categorie` WRITE;
|
|
/*!40000 ALTER TABLE `Categorie` DISABLE KEYS */;
|
|
INSERT INTO `Categorie` VALUES (1,'Professeurs et Maîtres de Conférences'),(2,'ATERs'),(3,'CDDs enseignement'),(4,'Doctorants Vacataires'),(5,'Permanents UPPA'),(6,'Vacataires extérieurs');
|
|
/*!40000 ALTER TABLE `Categorie` ENABLE KEYS */;
|
|
UNLOCK TABLES;
|
|
";
|
|
|
|
return $metaRep->createVersionDatabase($depId,$SQL);
|
|
|
|
}
|
|
|
|
} |