# Creación de tablas
-- MySQL Script generated by MySQL Workbench
-- Fri Mar 6 12:15:49 2026
-- 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 mydb
-- -----------------------------------------------------
-- -----------------------------------------------------
-- Schema mydb
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS `mydb` DEFAULT CHARACTER SET utf8 ;
USE `mydb` ;
-- -----------------------------------------------------
-- Table `mydb`.`TableLocal`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`TableLocal` (
`idTableLocal` INT NOT NULL AUTO_INCREMENT,
`LocalCiudad` VARCHAR(45) NULL,
`LocalSector` VARCHAR(45) NULL,
PRIMARY KEY (`idTableLocal`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `mydb`.`TableClientes`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`TableClientes` (
`idTableClientes` INT NOT NULL AUTO_INCREMENT,
`Nombre` VARCHAR(45) NOT NULL,
`Telefono` VARCHAR(10) NULL,
PRIMARY KEY (`idTableClientes`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `mydb`.`TableVenta`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`TableVenta` (
`idTableVenta` INT NOT NULL AUTO_INCREMENT,
`TableClientes_idTableClientes` INT NOT NULL,
`TableLocal_idTableLocal` INT NOT NULL,
`TipoEnvase` VARCHAR(45) NULL,
`FechaVenta` TIMESTAMP NULL,
PRIMARY KEY (`idTableVenta`),
INDEX `fk_TableDetalleVenta_TableLocal_idx` (`TableLocal_idTableLocal` ASC) VISIBLE,
INDEX `fk_TableVenta_TableClientes1_idx` (`TableClientes_idTableClientes` ASC) VISIBLE,
CONSTRAINT `fk_TableDetalleVenta_TableLocal`
FOREIGN KEY (`TableLocal_idTableLocal`)
REFERENCES `mydb`.`TableLocal` (`idTableLocal`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_TableVenta_TableClientes1`
FOREIGN KEY (`TableClientes_idTableClientes`)
REFERENCES `mydb`.`TableClientes` (`idTableClientes`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `mydb`.`TableSabores`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`TableSabores` (
`idTableSabores` INT NOT NULL AUTO_INCREMENT,
`NombreSabor` VARCHAR(45) NULL,
`PrecioUnitarioSabor` INT NULL,
PRIMARY KEY (`idTableSabores`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `mydb`.`TableDetalleVentas`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`TableDetalleVentas` (
`TableVenta_idTableVenta` INT NOT NULL,
`TableSabores_idTableSabores` INT NOT NULL,
`Cantidad` INT NULL,
PRIMARY KEY (`TableVenta_idTableVenta`, `TableSabores_idTableSabores`),
INDEX `fk_TableVentas_TableSabores1_idx` (`TableSabores_idTableSabores` ASC) VISIBLE,
INDEX `fk_TableDetalleVentas_TableVenta1_idx` (`TableVenta_idTableVenta` ASC) VISIBLE,
CONSTRAINT `fk_TableVentas_TableSabores1`
FOREIGN KEY (`TableSabores_idTableSabores`)
REFERENCES `mydb`.`TableSabores` (`idTableSabores`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_TableDetalleVentas_TableVenta1`
FOREIGN KEY (`TableVenta_idTableVenta`)
REFERENCES `mydb`.`TableVenta` (`idTableVenta`)
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;
# Carga de datos
USE `mydb` ;
-- 1. CARGA DE TABLAS MAESTRAS (Sin dependencias)
-- Insertar datos en TableLocal
INSERT INTO `mydb`.`TableLocal` (`LocalCiudad`, `LocalSector`) VALUES
('Quito', 'Norte - Iñaquito'),
('Guayaquil', 'Samborondón'),
('Cuenca', 'Centro Histórico'),
('Manta', 'El Murciélago'),
('Quito', 'Valle de Cumbayá');
-- Insertar datos en TableClientes
INSERT INTO `mydb`.`TableClientes` (`Nombre`, `Telefono`) VALUES
('Juan Pérez', '0991234567'),
('María García', '0987654321'),
('Carlos López', '0976543210'),
('Ana Martínez', '0965432109'),
('Luis Rodríguez', '0954321098');
-- Insertar datos en TableSabores
-- Nota: El precio está en formato INT (podrían ser centavos, ej: 250 = $2.50)
INSERT INTO `mydb`.`TableSabores` (`NombreSabor`, `PrecioUnitarioSabor`) VALUES
('Chocolate Suizo', 250),
('Vainilla Gourmet', 200),
('Fresa Silvestre', 225),
('Pistacho', 300),
('Manjar de Leche', 275);
-- 2. CARGA DE TABLAS DEPENDIENTES (Requieren IDs existentes)
-- Insertar datos en TableVenta
-- Asumimos que los IDs autoincrementales generados arriba son del 1 al 5
INSERT INTO `mydb`.`TableVenta` (`TableClientes_idTableClientes`, `TableLocal_idTableLocal`, `TipoEnvase`, `FechaVenta`) VALUES
(1, 1, 'Tarrina Mediana', CURRENT_TIMESTAMP),
(2, 2, 'Cono Simple', CURRENT_TIMESTAMP),
(3, 3, 'Vaso Grande', CURRENT_TIMESTAMP),
(4, 1, 'Tarrina Familiar', CURRENT_TIMESTAMP),
(5, 5, 'Vaso Pequeño', CURRENT_TIMESTAMP);
-- Insertar datos en TableDetalleVentas
-- Esta tabla vincula la Venta con los Sabores y la cantidad
INSERT INTO `mydb`.`TableDetalleVentas` (`TableVenta_idTableVenta`, `TableSabores_idTableSabores`, `Cantidad`) VALUES
(1, 1, 2), -- Venta 1 compró 2 de Chocolate
(1, 2, 1), -- Venta 1 también compró 1 de Vainilla
(2, 3, 1), -- Venta 2 compró 1 de Fresa
(3, 4, 3), -- Venta 3 compró 3 de Pistacho
(4, 5, 2), -- Venta 4 compró 2 de Manjar
(5, 1, 1); -- Venta 5 compró 1 de Chocolate