-- MySQL Script generated by MySQL Workbench
-- Mon Sep  4 09:12:43 2023
-- Model: New Model    Version: 1.0
-- 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 livequiz
-- -----------------------------------------------------
DROP SCHEMA IF EXISTS `livequiz` ;

-- -----------------------------------------------------
-- Schema livequiz
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS `livequiz` DEFAULT CHARACTER SET utf8 ;
USE `livequiz` ;

-- -----------------------------------------------------
-- Table `livequiz`.`USUARIO`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `livequiz`.`USUARIO` ;

CREATE TABLE IF NOT EXISTS `livequiz`.`USUARIO` (
  `idUSUARIO` INT NOT NULL AUTO_INCREMENT,
  `correo` VARCHAR(45) NULL,
  `password` VARCHAR(45) NULL,
  `sexo` VARCHAR(45) NULL,
  `nombre` VARCHAR(45) NULL,
  `apellidos` VARCHAR(45) NULL,
  `fechaNac` DATE NULL,
  `status` VARCHAR(45) NULL,
  `avatar` BLOB NULL,
  `timestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`idUSUARIO`))
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `livequiz`.`SESION`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `livequiz`.`SESION` ;

CREATE TABLE IF NOT EXISTS `livequiz`.`SESION` (
  `idSESION` INT NOT NULL AUTO_INCREMENT,
  `nombre` VARCHAR(250) NULL,
  `status` VARCHAR(45) NULL,
  PRIMARY KEY (`idSESION`))
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `livequiz`.`CREA`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `livequiz`.`CREA` ;

CREATE TABLE IF NOT EXISTS `livequiz`.`CREA` (
  `timestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `ip` VARCHAR(45) NULL,
  `USUARIO_idUSUARIO` INT NOT NULL,
  `SESION_idSESION` INT NOT NULL,
  PRIMARY KEY (`USUARIO_idUSUARIO`, `SESION_idSESION`),
  INDEX `fk_CREA_SESION1_idx` (`SESION_idSESION` ASC),
  CONSTRAINT `fk_CREA_USUARIO`
    FOREIGN KEY (`USUARIO_idUSUARIO`)
    REFERENCES `livequiz`.`USUARIO` (`idUSUARIO`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_CREA_SESION1`
    FOREIGN KEY (`SESION_idSESION`)
    REFERENCES `livequiz`.`SESION` (`idSESION`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `livequiz`.`GRUPO`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `livequiz`.`GRUPO` ;

CREATE TABLE IF NOT EXISTS `livequiz`.`GRUPO` (
  `idGRUPO` INT NOT NULL AUTO_INCREMENT,
  `nombre` VARCHAR(250) NULL,
  PRIMARY KEY (`idGRUPO`))
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `livequiz`.`PERTENECE_GRUPO`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `livequiz`.`PERTENECE_GRUPO` ;

CREATE TABLE IF NOT EXISTS `livequiz`.`PERTENECE_GRUPO` (
  `GRUPO_idGRUPO` INT NOT NULL,
  `SESION_idSESION` INT NOT NULL,
  PRIMARY KEY (`GRUPO_idGRUPO`, `SESION_idSESION`),
  INDEX `fk_PERTENECE_GRUPO_GRUPO1_idx` (`GRUPO_idGRUPO` ASC),
  INDEX `fk_PERTENECE_GRUPO_SESION1_idx` (`SESION_idSESION` ASC),
  CONSTRAINT `fk_PERTENECE_GRUPO_GRUPO1`
    FOREIGN KEY (`GRUPO_idGRUPO`)
    REFERENCES `livequiz`.`GRUPO` (`idGRUPO`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_PERTENECE_GRUPO_SESION1`
    FOREIGN KEY (`SESION_idSESION`)
    REFERENCES `livequiz`.`SESION` (`idSESION`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `livequiz`.`ESCUELA`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `livequiz`.`ESCUELA` ;

CREATE TABLE IF NOT EXISTS `livequiz`.`ESCUELA` (
  `idESCUELA` INT NOT NULL AUTO_INCREMENT,
  `nombre` VARCHAR(45) NULL,
  PRIMARY KEY (`idESCUELA`))
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `livequiz`.`PREGUNTAS`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `livequiz`.`PREGUNTAS` ;

CREATE TABLE IF NOT EXISTS `livequiz`.`PREGUNTAS` (
  `idPREGUNTAS` INT NOT NULL AUTO_INCREMENT,
  `pregunta` VARCHAR(250) NULL,
  `respuesta` VARCHAR(250) NULL,
  `tiempo` INT NULL,
  `img` BLOB NULL,
  `puntos` INT NULL,
  PRIMARY KEY (`idPREGUNTAS`))
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `livequiz`.`CONTIENE`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `livequiz`.`CONTIENE` ;

CREATE TABLE IF NOT EXISTS `livequiz`.`CONTIENE` (
  `timestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `orden` INT NULL,
  `SESION_idSESION` INT NOT NULL,
  `PREGUNTAS_idPREGUNTAS` INT NOT NULL,
  PRIMARY KEY (`PREGUNTAS_idPREGUNTAS`, `SESION_idSESION`),
  INDEX `fk_CONTIENE_SESION1_idx` (`SESION_idSESION` ASC),
  INDEX `fk_CONTIENE_PREGUNTAS1_idx` (`PREGUNTAS_idPREGUNTAS` ASC),
  CONSTRAINT `fk_CONTIENE_SESION1`
    FOREIGN KEY (`SESION_idSESION`)
    REFERENCES `livequiz`.`SESION` (`idSESION`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_CONTIENE_PREGUNTAS1`
    FOREIGN KEY (`PREGUNTAS_idPREGUNTAS`)
    REFERENCES `livequiz`.`PREGUNTAS` (`idPREGUNTAS`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `livequiz`.`JUEGO`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `livequiz`.`JUEGO` ;

CREATE TABLE IF NOT EXISTS `livequiz`.`JUEGO` (
  `timestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `idDinamico` VARCHAR(10) NOT NULL,
  `ip` VARCHAR(45) NULL,
  `SESION_idSESION` INT NOT NULL,
  PRIMARY KEY (`idDinamico`, `SESION_idSESION`),
  INDEX `fk_JUEGO_SESION1_idx` (`SESION_idSESION` ASC),
  CONSTRAINT `fk_JUEGO_SESION1`
    FOREIGN KEY (`SESION_idSESION`)
    REFERENCES `livequiz`.`SESION` (`idSESION`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `livequiz`.`ACTIVA`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `livequiz`.`ACTIVA` ;

CREATE TABLE IF NOT EXISTS `livequiz`.`ACTIVA` (
  `idACTIVA` INT NOT NULL AUTO_INCREMENT,
  `JUEGO_idJUEGO` INT NOT NULL,
  `JUEGO_idDinamico` VARCHAR(10) NOT NULL,
  PRIMARY KEY (`idACTIVA`, `JUEGO_idJUEGO`, `JUEGO_idDinamico`),
  INDEX `fk_ACTIVA_JUEGO1_idx` (`JUEGO_idDinamico` ASC),
  CONSTRAINT `fk_ACTIVA_JUEGO1`
    FOREIGN KEY (`JUEGO_idDinamico`)
    REFERENCES `livequiz`.`JUEGO` (`idDinamico`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `livequiz`.`PREGUNTA_ACTUAL`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `livequiz`.`PREGUNTA_ACTUAL` ;

CREATE TABLE IF NOT EXISTS `livequiz`.`PREGUNTA_ACTUAL` (
  `idPREGUNTA_ACTUAL` INT NOT NULL AUTO_INCREMENT,
  `timestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `tiempo` INT NULL,
  `PREGUNTAS_idPREGUNTAS` INT NOT NULL,
  `ACTIVA_idACTIVA` INT NOT NULL,
  PRIMARY KEY (`idPREGUNTA_ACTUAL`, `PREGUNTAS_idPREGUNTAS`, `ACTIVA_idACTIVA`),
  INDEX `fk_PREGUNTA_ACTUAL_PREGUNTAS1_idx` (`PREGUNTAS_idPREGUNTAS` ASC),
  INDEX `fk_PREGUNTA_ACTUAL_ACTIVA1_idx` (`ACTIVA_idACTIVA` ASC),
  CONSTRAINT `fk_PREGUNTA_ACTUAL_PREGUNTAS1`
    FOREIGN KEY (`PREGUNTAS_idPREGUNTAS`)
    REFERENCES `livequiz`.`PREGUNTAS` (`idPREGUNTAS`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_PREGUNTA_ACTUAL_ACTIVA1`
    FOREIGN KEY (`ACTIVA_idACTIVA`)
    REFERENCES `livequiz`.`ACTIVA` (`idACTIVA`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `livequiz`.`RESPONDE`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `livequiz`.`RESPONDE` ;

CREATE TABLE IF NOT EXISTS `livequiz`.`RESPONDE` (
  `idRESPONDE` INT NOT NULL AUTO_INCREMENT,
  `timestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `estrella` TINYINT NULL,
  `puntaje` INT NULL,
  `USUARIO_idUSUARIO` INT NOT NULL,
  `PREGUNTA_ACTUAL_idPREGUNTA_ACTUAL` INT NOT NULL,
  PRIMARY KEY (`idRESPONDE`, `USUARIO_idUSUARIO`, `PREGUNTA_ACTUAL_idPREGUNTA_ACTUAL`),
  INDEX `fk_RESPONDE_USUARIO1_idx` (`USUARIO_idUSUARIO` ASC),
  INDEX `fk_RESPONDE_PREGUNTA_ACTUAL1_idx` (`PREGUNTA_ACTUAL_idPREGUNTA_ACTUAL` ASC),
  CONSTRAINT `fk_RESPONDE_USUARIO1`
    FOREIGN KEY (`USUARIO_idUSUARIO`)
    REFERENCES `livequiz`.`USUARIO` (`idUSUARIO`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_RESPONDE_PREGUNTA_ACTUAL1`
    FOREIGN KEY (`PREGUNTA_ACTUAL_idPREGUNTA_ACTUAL`)
    REFERENCES `livequiz`.`PREGUNTA_ACTUAL` (`idPREGUNTA_ACTUAL`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `livequiz`.`INSCRIBE`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `livequiz`.`INSCRIBE` ;

CREATE TABLE IF NOT EXISTS `livequiz`.`INSCRIBE` (
  `timestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `alias` VARCHAR(45) NULL,
  `USUARIO_idUSUARIO` INT NOT NULL,
  `JUEGO_idDinamico` VARCHAR(10) NOT NULL,
  PRIMARY KEY (`USUARIO_idUSUARIO`, `JUEGO_idDinamico`),
  INDEX `fk_INSCRIBE_USUARIO1_idx` (`USUARIO_idUSUARIO` ASC),
  INDEX `fk_INSCRIBE_JUEGO1_idx` (`JUEGO_idDinamico` ASC),
  CONSTRAINT `fk_INSCRIBE_USUARIO1`
    FOREIGN KEY (`USUARIO_idUSUARIO`)
    REFERENCES `livequiz`.`USUARIO` (`idUSUARIO`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_INSCRIBE_JUEGO1`
    FOREIGN KEY (`JUEGO_idDinamico`)
    REFERENCES `livequiz`.`JUEGO` (`idDinamico`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `livequiz`.`RELACION`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `livequiz`.`RELACION` ;

CREATE TABLE IF NOT EXISTS `livequiz`.`RELACION` (
  `USUARIO_idUSUARIO` INT NOT NULL,
  `ESCUELA_idESCUELA` INT NOT NULL,
  PRIMARY KEY (`USUARIO_idUSUARIO`, `ESCUELA_idESCUELA`),
  INDEX `fk_USUARIO_has_ESCUELA_ESCUELA1_idx` (`ESCUELA_idESCUELA` ASC),
  INDEX `fk_USUARIO_has_ESCUELA_USUARIO1_idx` (`USUARIO_idUSUARIO` ASC),
  CONSTRAINT `fk_USUARIO_has_ESCUELA_USUARIO1`
    FOREIGN KEY (`USUARIO_idUSUARIO`)
    REFERENCES `livequiz`.`USUARIO` (`idUSUARIO`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_USUARIO_has_ESCUELA_ESCUELA1`
    FOREIGN KEY (`ESCUELA_idESCUELA`)
    REFERENCES `livequiz`.`ESCUELA` (`idESCUELA`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `livequiz`.`PERTENECE_ESCUELA`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `livequiz`.`PERTENECE_ESCUELA` ;

CREATE TABLE IF NOT EXISTS `livequiz`.`PERTENECE_ESCUELA` (
  `propuesta` VARCHAR(150) NULL,
  `SESION_idSESION` INT NOT NULL,
  `ESCUELA_idESCUELA` INT NOT NULL,
  PRIMARY KEY (`SESION_idSESION`, `ESCUELA_idESCUELA`),
  INDEX `fk_PERTENECE_ESCUELA_SESION1_idx` (`SESION_idSESION` ASC),
  INDEX `fk_PERTENECE_ESCUELA_ESCUELA1_idx` (`ESCUELA_idESCUELA` ASC),
  CONSTRAINT `fk_PERTENECE_ESCUELA_SESION1`
    FOREIGN KEY (`SESION_idSESION`)
    REFERENCES `livequiz`.`SESION` (`idSESION`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_PERTENECE_ESCUELA_ESCUELA1`
    FOREIGN KEY (`ESCUELA_idESCUELA`)
    REFERENCES `livequiz`.`ESCUELA` (`idESCUELA`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `livequiz`.`REPORTE`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `livequiz`.`REPORTE` ;

CREATE TABLE IF NOT EXISTS `livequiz`.`REPORTE` (
  `idREPORTE` INT NOT NULL AUTO_INCREMENT,
  `timestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `razon` VARCHAR(250) NULL,
  `USUARIO_idUSUARIO` INT NOT NULL,
  `SESION_idSESION` INT NOT NULL,
  PRIMARY KEY (`idREPORTE`, `USUARIO_idUSUARIO`, `SESION_idSESION`),
  INDEX `fk_REPORTE_USUARIO1_idx` (`USUARIO_idUSUARIO` ASC),
  INDEX `fk_REPORTE_SESION1_idx` (`SESION_idSESION` ASC),
  CONSTRAINT `fk_REPORTE_USUARIO1`
    FOREIGN KEY (`USUARIO_idUSUARIO`)
    REFERENCES `livequiz`.`USUARIO` (`idUSUARIO`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_REPORTE_SESION1`
    FOREIGN KEY (`SESION_idSESION`)
    REFERENCES `livequiz`.`SESION` (`idSESION`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
