2. AP06-AA7-EV02. Lenguaje Estructurado de Consultas SQL.
Modelo Entidad Relación
-- 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 Solicitud
-- -----------------------------------------------------
DROP SCHEMA IF EXISTS `Solicitud` ;
-- -----------------------------------------------------
3. -- Schema Solicitud
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS `Solicitud` DEFAULT CHARACTER SET utf8 ;
-- -----------------------------------------------------
-- Schema Proyecto_Solicitud_Servicio
-- -----------------------------------------------------
DROP SCHEMA IF EXISTS `Proyecto_Solicitud_Servicio` ;
-- -----------------------------------------------------
-- Schema Proyecto_Solicitud_Servicio
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS `Proyecto_Solicitud_Servicio` DEFAULT CHARACTER SET latin1 ;
USE `Solicitud` ;
-- -----------------------------------------------------
-- Table `Solicitud`.`categoria`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `Solicitud`.`categoria` ;
CREATE TABLE IF NOT EXISTS `Solicitud`.`categoria` (
`idcategoria` INT NOT NULL,
`Nombre` VARCHAR(45) NULL,
`Servicio_idServicio` INT NOT NULL,
PRIMARY KEY (`idcategoria`),
INDEX `fk_categoria_producto1_idx` (`Servicio_idServicio` ASC) VISIBLE,
CONSTRAINT `fk_categoria_producto1`
4. FOREIGN KEY (`Servicio_idServicio`)
REFERENCES `Solicitud`.`Servicio` (`idServicio`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `Solicitud`.`categoria`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `Solicitud`.`categoria` ;
CREATE TABLE IF NOT EXISTS `Solicitud`.`categoria` (
`idcategoria` INT NOT NULL,
`Nombre` VARCHAR(45) NULL,
`Servicio_idServicio` INT NOT NULL,
PRIMARY KEY (`idcategoria`),
INDEX `fk_categoria_producto1_idx` (`Servicio_idServicio` ASC) VISIBLE,
CONSTRAINT `fk_categoria_producto1`
FOREIGN KEY (`Servicio_idServicio`)
REFERENCES `Solicitud`.`Servicio` (`idServicio`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
5. -- -----------------------------------------------------
-- Table `Proyecto_Solicitud_Servicio`.`Información Del Servicio`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `Proyecto_Solicitud_Servicio`.`Información Del Servicio` ;
CREATE TABLE IF NOT EXISTS `Proyecto_Solicitud_Servicio`.`Información Del Servicio` (
`idInformación Del Servicio` INT GENERATED ALWAYS AS () VIRTUAL,
`Servicio_idservicio` INT NULL,
PRIMARY KEY (`idInformación Del Servicio`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `Solicitud`.`Usuario`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `Solicitud`.`Usuario` ;
CREATE TABLE IF NOT EXISTS `Solicitud`.`Usuario` (
`idusuario` INT NOT NULL,
`Nombre` VARCHAR(45) NULL,
`Usuario_idusuario` INT NOT NULL,
PRIMARY KEY (`idusuario`),
INDEX `Usuario_idx` (`idusuario` ASC, `Usuario_idusuario` ASC) VISIBLE,
CONSTRAINT `Usuario`
FOREIGN KEY (`idusuario` , `Usuario_idusuario`)
6. REFERENCES `Proyecto_Solicitud_Servicio`.`Información Del Servicio` (`Servicio_idservicio` ,
`idInformación Del Servicio`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `Solicitud`.`Persona`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `Solicitud`.`Persona` ;
CREATE TABLE IF NOT EXISTS `Solicitud`.`Persona` (
`idpersona` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`Nombre` VARCHAR(45) GENERATED ALWAYS AS () VIRTUAL,
`Apellido` VARCHAR(45) GENERATED ALWAYS AS (),
`Razon Social` VARCHAR(45) GENERATED ALWAYS AS () VIRTUAL,
`Direccion` VARCHAR(45) GENERATED ALWAYS AS (),
`Telefono` VARCHAR(45) GENERATED ALWAYS AS (),
`Nickname` VARCHAR(100) NOT NULL,
`contrasena` VARCHAR(100) NOT NULL,
`E-mail` VARCHAR(100) GENERATED ALWAYS AS () VIRTUAL,
PRIMARY KEY (`idpersona`),
CONSTRAINT `Persona`
FOREIGN KEY ()
REFERENCES `Solicitud`.`Usuario` ()
7. ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `Solicitud`.`Cliente`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `Solicitud`.`Cliente` ;
CREATE TABLE IF NOT EXISTS `Solicitud`.`Cliente` (
`idcliente` INT NOT NULL,
`persona_idpersona` INT NOT NULL,
`Fecha_alta` DATE NOT NULL,
`Enable` TINYTEXT NOT NULL DEFAULT '1',
PRIMARY KEY (`idcliente`),
INDEX `fk_cliente_persona_idx` (`persona_idpersona` ASC) VISIBLE,
CONSTRAINT `fk_cliente_persona`
FOREIGN KEY (`persona_idpersona`)
REFERENCES `Solicitud`.`Persona` (`idpersona`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
8. -- Table `Solicitud`.`Servicio`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `Solicitud`.`Servicio` ;
CREATE TABLE IF NOT EXISTS `Solicitud`.`Servicio` (
`idServicio` INT NOT NULL,
`Tipo_servicio` VARCHAR(45) NULL,
`Cantidad` INT NULL,
`PrecioUnitario` DECIMAL(5) NULL,
`PrecioFinal` DECIMAL(5) NULL,
`categoria_idcategoria` INT NOT NULL,
`Servicio_idServicioventa` INT NOT NULL,
PRIMARY KEY (`idServicio`),
INDEX `fk_producto_categoria1_idx` (`categoria_idcategoria` ASC) VISIBLE,
INDEX `fk_Servicio_Servicio1_idx` (`Servicio_idServicioventa` ASC) VISIBLE,
CONSTRAINT `fk_producto_categoria1`
FOREIGN KEY (`categoria_idcategoria`)
REFERENCES `Solicitud`.`categoria` (`idcategoria`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_Servicio_Servicio1`
FOREIGN KEY (`Servicio_idServicioventa`)
REFERENCES `Solicitud`.`Servicio` (`idServicioventa`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
9. -- -----------------------------------------------------
-- Table `Solicitud`.`categoria`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `Solicitud`.`categoria` ;
CREATE TABLE IF NOT EXISTS `Solicitud`.`categoria` (
`idcategoria` INT NOT NULL,
`Nombre` VARCHAR(45) NULL,
`Servicio_idServicio` INT NOT NULL,
PRIMARY KEY (`idcategoria`),
INDEX `fk_categoria_producto1_idx` (`Servicio_idServicio` ASC) VISIBLE,
CONSTRAINT `fk_categoria_producto1`
FOREIGN KEY (`Servicio_idServicio`)
REFERENCES `Solicitud`.`Servicio` (`idServicio`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `Solicitud`.`Servicio`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `Solicitud`.`Servicio` ;
10. CREATE TABLE IF NOT EXISTS `Solicitud`.`Servicio` (
`idServicio` INT NOT NULL,
`Tipo_servicio` VARCHAR(45) NULL,
`Cantidad` INT NULL,
`PrecioUnitario` DECIMAL(5) NULL,
`PrecioFinal` DECIMAL(5) NULL,
`categoria_idcategoria` INT NOT NULL,
`Servicio_idServicioventa` INT NOT NULL,
PRIMARY KEY (`idServicio`),
INDEX `fk_producto_categoria1_idx` (`categoria_idcategoria` ASC) VISIBLE,
INDEX `fk_Servicio_Servicio1_idx` (`Servicio_idServicioventa` ASC) VISIBLE,
CONSTRAINT `fk_producto_categoria1`
FOREIGN KEY (`categoria_idcategoria`)
REFERENCES `Solicitud`.`categoria` (`idcategoria`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_Servicio_Servicio1`
FOREIGN KEY (`Servicio_idServicioventa`)
REFERENCES `Solicitud`.`Servicio` (`idServicioventa`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
USE `Proyecto_Solicitud_Servicio` ;
-- -----------------------------------------------------
11. -- Table `Proyecto_Solicitud_Servicio`.`persona`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `Proyecto_Solicitud_Servicio`.`persona` ;
CREATE TABLE IF NOT EXISTS `Proyecto_Solicitud_Servicio`.`persona` (
`idpersona` INT(20) NOT NULL,
`Nombre` TEXT NOT NULL,
`Apellido` TEXT NOT NULL,
`Genero` TEXT NOT NULL,
`Direccion` TEXT NOT NULL,
`E-mail` TEXT NOT NULL,
`Telefono` INT(20) NOT NULL,
`FechaNacimiento` DATE NOT NULL,
`Fecha-Hora-Ingreso` DATETIME NOT NULL,
`Contrasena` FLOAT NOT NULL,
PRIMARY KEY (`idpersona`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1;
-- -----------------------------------------------------
-- Table `Proyecto_Solicitud_Servicio`.`Cliente`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `Proyecto_Solicitud_Servicio`.`Cliente` ;
CREATE TABLE IF NOT EXISTS `Proyecto_Solicitud_Servicio`.`Cliente` (
12. `idcliente` INT(20) NOT NULL,
`persona_id persona` INT(20) NOT NULL,
PRIMARY KEY (`idcliente`),
INDEX `fk_cliente_persona1_idx` (`persona_id persona` ASC) VISIBLE,
CONSTRAINT `fk_cliente_persona1`
FOREIGN KEY (`persona_id persona`)
REFERENCES `Proyecto_Solicitud_Servicio`.`persona` (`idpersona`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1;
-- -----------------------------------------------------
-- Table `Proyecto_Solicitud_Servicio`.`Usuario`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `Proyecto_Solicitud_Servicio`.`Usuario` ;
CREATE TABLE IF NOT EXISTS `Proyecto_Solicitud_Servicio`.`Usuario` (
`idusuario` INT(20) NOT NULL,
`persona_id persona` INT(20) NOT NULL,
PRIMARY KEY (`idusuario`),
INDEX `fk_usuario_persona1_idx` (`persona_id persona` ASC) VISIBLE,
CONSTRAINT `fk_usuario_persona1`
FOREIGN KEY (`persona_id persona`)
REFERENCES `Proyecto_Solicitud_Servicio`.`persona` (`idpersona`)
13. ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1;
-- -----------------------------------------------------
-- Table `Proyecto_Solicitud_Servicio`.`Informacion_Servicio`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `Proyecto_Solicitud_Servicio`.`Informacion_Servicio` ;
CREATE TABLE IF NOT EXISTS `Proyecto_Solicitud_Servicio`.`Informacion_Servicio` (
`idCliente` INT(20) NOT NULL AUTO_INCREMENT,
`idServicio` DECIMAL(10,0) NOT NULL,
`usuario_id usuario` INT(20) NOT NULL,
PRIMARY KEY (`idCliente`, `idServicio`),
INDEX `fk_compras_usuario1_idx` (`usuario_id usuario` ASC) VISIBLE,
CONSTRAINT `fk_compras_usuario1`
FOREIGN KEY (`usuario_id usuario`)
REFERENCES `Proyecto_Solicitud_Servicio`.`Usuario` (`idusuario`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1;
14. -- -----------------------------------------------------
-- Table `Proyecto_Solicitud_Servicio`.`producto`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `Proyecto_Solicitud_Servicio`.`producto` ;
CREATE TABLE IF NOT EXISTS `Proyecto_Solicitud_Servicio`.`producto` (
`idproducto` INT(20) NOT NULL,
`nombre` TEXT NOT NULL,
`cantidad` INT(10) NOT NULL,
`valor_inicial` DECIMAL(10,0) NOT NULL,
`valor_final` DECIMAL(10,0) NOT NULL,
`categoria_idcategoria` INT NOT NULL,
PRIMARY KEY (`idproducto`),
INDEX `fk_producto_categoria1_idx` (`categoria_idcategoria` ASC) VISIBLE,
CONSTRAINT `fk_producto_categoria1`
FOREIGN KEY (`categoria_idcategoria`)
REFERENCES `Solicitud`.`categoria` (`idcategoria`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1;
-- -----------------------------------------------------
-- Table `Proyecto_Solicitud_Servicio`.`Detalle Servicio`
-- -----------------------------------------------------
15. DROP TABLE IF EXISTS `Proyecto_Solicitud_Servicio`.`Detalle Servicio` ;
CREATE TABLE IF NOT EXISTS `Proyecto_Solicitud_Servicio`.`Detalle Servicio` (
`iddetalle Servicio` INT(20) NOT NULL,
`Servicio_id Servicio` INT(20) NOT NULL,
PRIMARY KEY (`iddetalle Servicio`),
INDEX `fk_detalle compras_producto1_idx` (`Servicio_id Servicio` ASC) VISIBLE,
CONSTRAINT `fk_detalle compras_producto1`
FOREIGN KEY (`Servicio_id Servicio`)
REFERENCES `Proyecto_Solicitud_Servicio`.`producto` (`idproducto`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1;
-- -----------------------------------------------------
-- Table `Proyecto_Solicitud_Servicio`.`Solicitud`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `Proyecto_Solicitud_Servicio`.`Solicitud` ;
CREATE TABLE IF NOT EXISTS `Proyecto_Solicitud_Servicio`.`Solicitud` (
`idSolicitud` INT(20) NOT NULL,
`valor_total` DECIMAL(10,0) NOT NULL,
`cliente_id cliente` INT(20) NOT NULL,
`usuario_id usuario` INT(20) NOT NULL,
16. PRIMARY KEY (`idSolicitud`),
INDEX `fk_ventas_cliente1_idx` (`cliente_id cliente` ASC) VISIBLE,
INDEX `fk_ventas_usuario1_idx` (`usuario_id usuario` ASC) VISIBLE,
CONSTRAINT `fk_ventas_cliente1`
FOREIGN KEY (`cliente_id cliente`)
REFERENCES `Proyecto_Solicitud_Servicio`.`Cliente` (`idcliente`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_ventas_usuario1`
FOREIGN KEY (`usuario_id usuario`)
REFERENCES `Proyecto_Solicitud_Servicio`.`Usuario` (`idusuario`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1;
-- -----------------------------------------------------
-- Table `Proyecto_Solicitud_Servicio`.`detalle`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `Proyecto_Solicitud_Servicio`.`detalle` ;
CREATE TABLE IF NOT EXISTS `Proyecto_Solicitud_Servicio`.`detalle` (
`iddetalle` INT(20) NOT NULL,
`ventas_id venta` INT(20) NOT NULL,
`Servicio_id Servicio` INT(20) NOT NULL,
17. PRIMARY KEY (`iddetalle`),
INDEX `fk_detalle venta_ventas1_idx` (`ventas_id venta` ASC) VISIBLE,
INDEX `fk_detalle venta_producto1_idx` (`Servicio_id Servicio` ASC) VISIBLE,
CONSTRAINT `fk_detalle venta_ventas1`
FOREIGN KEY (`ventas_id venta`)
REFERENCES `Proyecto_Solicitud_Servicio`.`Solicitud` (`idSolicitud`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_detalle venta_producto1`
FOREIGN KEY (`Servicio_id Servicio`)
REFERENCES `Proyecto_Solicitud_Servicio`.`producto` (`idproducto`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1;
-- -----------------------------------------------------
-- Table `Proyecto_Solicitud_Servicio`.`Consultoria`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `Proyecto_Solicitud_Servicio`.`Consultoria` ;
CREATE TABLE IF NOT EXISTS `Proyecto_Solicitud_Servicio`.`Consultoria` (
`idConsultoria` INT(20) NOT NULL,
`Consultoria_id Consultoria` INT(20) NOT NULL,
PRIMARY KEY (`idConsultoria`),
18. INDEX `fk_proveedor_persona_idx` (`Consultoria_id Consultoria` ASC) VISIBLE,
CONSTRAINT `fk_proveedor_persona`
FOREIGN KEY (`Consultoria_id Consultoria`)
REFERENCES `Proyecto_Solicitud_Servicio`.`persona` (`idpersona`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
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;