Add new file

parent aba931ba
-- MySQL Workbench Forward Engineering
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='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
-- -----------------------------------------------------
-- Schema MCHS_project
-- -----------------------------------------------------
-- -----------------------------------------------------
-- Schema MCHS_project
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS `MCHS_project` DEFAULT CHARACTER SET utf8 ;
USE `MCHS_project` ;
-- -----------------------------------------------------
-- Table `MCHS_project`.`position_group`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `MCHS_project`.`position_group` (
`id` INT NOT NULL,
`name` VARCHAR(45) NOT NULL,
PRIMARY KEY (`id`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `MCHS_project`.`position`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `MCHS_project`.`position` (
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(45) NOT NULL,
`group` INT NOT NULL,
PRIMARY KEY (`id`, `group`),
INDEX `group_idx` (`group` ASC) VISIBLE,
CONSTRAINT `group`
FOREIGN KEY (`group`)
REFERENCES `MCHS_project`.`position_group` (`id`)
ON DELETE NO ACTION
ON UPDATE CASCADE)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `MCHS_project`.`rank`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `MCHS_project`.`rank` (
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(45) NOT NULL,
PRIMARY KEY (`id`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `MCHS_project`.`employee`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `MCHS_project`.`employee` (
`id` INT NOT NULL AUTO_INCREMENT,
`last_name` VARCHAR(45) NOT NULL,
`first_name` VARCHAR(45) NOT NULL,
`middle_name` VARCHAR(45) NULL,
`birthday` DATE NOT NULL,
`position` INT NOT NULL,
`rank` INT NOT NULL,
PRIMARY KEY (`id`, `position`, `rank`),
INDEX `position_to_employee_idx` (`position` ASC) VISIBLE,
INDEX `rank_to_employee_idx` (`rank` ASC) INVISIBLE,
CONSTRAINT `position_to_employee`
FOREIGN KEY (`position`)
REFERENCES `MCHS_project`.`position` (`id`)
ON DELETE NO ACTION
ON UPDATE CASCADE,
CONSTRAINT `rank_to_employee`
FOREIGN KEY (`rank`)
REFERENCES `MCHS_project`.`rank` (`id`)
ON DELETE NO ACTION
ON UPDATE CASCADE)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `MCHS_project`.`attestation_type`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `MCHS_project`.`attestation_type` (
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(45) NOT NULL,
PRIMARY KEY (`id`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `MCHS_project`.`attestation`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `MCHS_project`.`attestation` (
`id` INT NOT NULL AUTO_INCREMENT,
`type` INT NOT NULL,
`status` TINYINT NOT NULL,
`no_attestation_reason` VARCHAR(45) NULL,
`date` DATETIME NOT NULL,
PRIMARY KEY (`id`, `type`),
INDEX `att.type_to_attestation_idx` (`type` ASC) VISIBLE,
CONSTRAINT `att.type_to_attestation`
FOREIGN KEY (`type`)
REFERENCES `MCHS_project`.`attestation_type` (`id`)
ON DELETE NO ACTION
ON UPDATE CASCADE)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `MCHS_project`.`exercise_type`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `MCHS_project`.`exercise_type` (
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(45) NOT NULL,
PRIMARY KEY (`id`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `MCHS_project`.`exercise`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `MCHS_project`.`exercise` (
`id` INT NOT NULL AUTO_INCREMENT,
`exercise_type` INT NOT NULL,
`address` VARCHAR(100) NOT NULL,
PRIMARY KEY (`id`, `exercise_type`),
INDEX `ex.type_to_exercise_idx` (`exercise_type` ASC) VISIBLE,
CONSTRAINT `ex.type_to_exercise`
FOREIGN KEY (`exercise_type`)
REFERENCES `MCHS_project`.`exercise_type` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `MCHS_project`.`exercises_report`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `MCHS_project`.`exercises_report` (
`id` INT NOT NULL AUTO_INCREMENT,
`start_date` DATETIME NOT NULL,
`finish_date` DATETIME NOT NULL,
`count_plan` SMALLINT NOT NULL,
`count_actual` SMALLINT NOT NULL,
`count_reason` VARCHAR(45) NULL,
`comment` TEXT NULL,
PRIMARY KEY (`id`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `MCHS_project`.`employee_exercise`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `MCHS_project`.`employee_exercise` (
`id_employee` INT NOT NULL,
`id_exercise` INT NOT NULL,
PRIMARY KEY (`id_employee`, `id_exercise`),
INDEX `exercise_idx` (`id_exercise` ASC) VISIBLE,
CONSTRAINT `employee`
FOREIGN KEY (`id_employee`)
REFERENCES `MCHS_project`.`employee` (`id`)
ON DELETE NO ACTION
ON UPDATE CASCADE,
CONSTRAINT `exercise`
FOREIGN KEY (`id_exercise`)
REFERENCES `MCHS_project`.`exercise` (`id`)
ON DELETE NO ACTION
ON UPDATE CASCADE)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `MCHS_project`.`employee_attestation`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `MCHS_project`.`employee_attestation` (
`id_employee` INT NOT NULL,
`id_attestation` INT NOT NULL,
PRIMARY KEY (`id_employee`, `id_attestation`),
INDEX `attestation_idx` (`id_attestation` ASC) VISIBLE,
CONSTRAINT `employe`
FOREIGN KEY (`id_employee`)
REFERENCES `MCHS_project`.`employee` (`id`)
ON DELETE NO ACTION
ON UPDATE CASCADE,
CONSTRAINT `attestation`
FOREIGN KEY (`id_attestation`)
REFERENCES `MCHS_project`.`attestation` (`id`)
ON DELETE NO ACTION
ON UPDATE CASCADE)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `MCHS_project`.`fire_vehicle`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `MCHS_project`.`fire_vehicle` (
`serial_number` INT NOT NULL,
`brand` VARCHAR(100) NOT NULL,
`production_date` DATE NOT NULL,
`year_in_service` DATE NOT NULL,
`type` VARCHAR(45) NOT NULL,
PRIMARY KEY (`serial_number`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `MCHS_project`.`callout`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `MCHS_project`.`callout` (
`id` INT NOT NULL AUTO_INCREMENT,
`duration` VARCHAR(45) NOT NULL,
`head_of_departure` INT NOT NULL,
`saved` SMALLINT NOT NULL,
`evacuated` SMALLINT NOT NULL,
`date` DATE NULL,
`type` VARCHAR(45) NOT NULL,
`address` VARCHAR(100) NOT NULL,
`fire_rank` VARCHAR(45) NULL,
`fire_vehicle_id` INT NOT NULL,
PRIMARY KEY (`id`, `head_of_departure`, `fire_vehicle_id`),
INDEX `head_of_department_idx` (`head_of_departure` ASC) VISIBLE,
INDEX `vehicle_idx` (`fire_vehicle_id` ASC) VISIBLE,
CONSTRAINT `head_of_department`
FOREIGN KEY (`head_of_departure`)
REFERENCES `MCHS_project`.`employee` (`id`)
ON DELETE NO ACTION
ON UPDATE CASCADE,
CONSTRAINT `vehicle`
FOREIGN KEY (`fire_vehicle_id`)
REFERENCES `MCHS_project`.`fire_vehicle` (`serial_number`)
ON DELETE NO ACTION
ON UPDATE CASCADE)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `MCHS_project`.`employee_to_callout`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `MCHS_project`.`employee_to_callout` (
`callout_id` INT NOT NULL,
`employee_id` INT NOT NULL,
PRIMARY KEY (`callout_id`, `employee_id`),
INDEX `employee_idx` (`employee_id` ASC) VISIBLE,
CONSTRAINT `callout`
FOREIGN KEY (`callout_id`)
REFERENCES `MCHS_project`.`callout` (`id`)
ON DELETE NO ACTION
ON UPDATE CASCADE,
CONSTRAINT `employee`
FOREIGN KEY (`employee_id`)
REFERENCES `MCHS_project`.`employee` (`id`)
ON DELETE NO ACTION
ON UPDATE CASCADE)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `MCHS_project`.`user`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `MCHS_project`.`user` (
`id` INT NOT NULL AUTO_INCREMENT,
`employee_id` INT NULL,
`login` VARCHAR(45) NOT NULL,
`password_hash` VARCHAR(45) NOT NULL,
`created` DATETIME NOT NULL,
`updated` DATETIME NOT NULL,
PRIMARY KEY (`id`, `employee_id`),
UNIQUE INDEX `id_UNIQUE` (`id` ASC) VISIBLE,
INDEX `employee_idx` (`employee_id` ASC) VISIBLE,
CONSTRAINT `employee`
FOREIGN KEY (`employee_id`)
REFERENCES `MCHS_project`.`employee` (`id`)
ON DELETE NO ACTION
ON UPDATE CASCADE)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `MCHS_project`.`privilege`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `MCHS_project`.`privilege` (
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(45) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE INDEX `name_UNIQUE` (`name` ASC) VISIBLE)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `MCHS_project`.`user_privilege`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `MCHS_project`.`user_privilege` (
`user_id` INT NOT NULL,
`privilege_id` INT NOT NULL,
PRIMARY KEY (`user_id`, `privilege_id`),
INDEX `privilege_idx` (`privilege_id` ASC) VISIBLE,
CONSTRAINT `user`
FOREIGN KEY (`user_id`)
REFERENCES `MCHS_project`.`user` (`id`)
ON DELETE NO ACTION
ON UPDATE CASCADE,
CONSTRAINT `privilege`
FOREIGN KEY (`privilege_id`)
REFERENCES `MCHS_project`.`privilege` (`id`)
ON DELETE NO ACTION
ON UPDATE CASCADE)
ENGINE = InnoDB;
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment