SCRIPT
-- phpMyAdmin SQL Dump
-- version 5.2.1
-- https://www.phpmyadmin.net/
--
-- Servidor: 127.0.0.1:3306
-- Tiempo de generación: 13-05-2024 a las 01:55:21
-- Versión del servidor: 8.3.0
-- Versión de PHP: 8.1.2-1ubuntu2.17
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Base de datos: basedtos
--
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla Bodegas
--
CREATE TABLE Bodegas (
idBodega int NOT NULL,
Nombre varchar(45) DEFAULT NULL,
Dirección varchar(45) DEFAULT NULL,
Capacidad varchar(45) DEFAULT NULL,
idEmpresa int NOT NULL,
idCargoAutorizado int NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla Cargos
--
CREATE TABLE Cargos (
idCargo int NOT NULL,
Nombre varchar(50) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla CargosAutorizados
--
CREATE TABLE CargosAutorizados (
idCargoAutorizado int NOT NULL,
idCargo int NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla Empleados
--
CREATE TABLE Empleados (
idEmpleado int NOT NULL,
Nombre varchar(50) DEFAULT NULL,
Identificación varchar(20) DEFAULT NULL,
Correo varchar(45) DEFAULT NULL,
Teléfono varchar(45) DEFAULT NULL,
idCargo int NOT NULL,
idIdentidadAutorizada int NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla Empresas
--
CREATE TABLE Empresas (
idEmpresa int NOT NULL,
NombreE varchar(50) DEFAULT NULL,
Dirección varchar(50) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla IdentidadAutorizada
--
CREATE TABLE IdentidadAutorizada (
idIdentidadAutorizada int NOT NULL,
idBodega int NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla Movimientos
--
CREATE TABLE Movimientos (
idMovimiento int NOT NULL,
Fecha date DEFAULT NULL,
Hora time DEFAULT NULL,
Descripción varchar(200) DEFAULT NULL,
idEmpleado int NOT NULL,
idProductbode int NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla Productbode
--
CREATE TABLE Productbode (
idProductbode int NOT NULL,
Cantidad varchar(45) DEFAULT NULL,
FechaV date DEFAULT NULL,
idBodega int NOT NULL,
idProducto int NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla Productos
--
CREATE TABLE Productos (
idProducto int NOT NULL,
NombreP varchar(60) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
--
-- Índices para tablas volcadas
--
--
-- Indices de la tabla Bodegas
--
ALTER TABLE Bodegas
ADD PRIMARY KEY (idBodega),
ADD KEY fk_Empresa (idEmpresa),
ADD KEY fk_CargoAutorizado (idCargoAutorizado);
--
-- Indices de la tabla Cargos
--
ALTER TABLE Cargos
ADD PRIMARY KEY (idCargo);
--
-- Indices de la tabla CargosAutorizados
--
ALTER TABLE CargosAutorizados
ADD PRIMARY KEY (idCargoAutorizado),
ADD KEY fk_Cargo (idCargo);
--
-- Indices de la tabla Empleados
--
ALTER TABLE Empleados
ADD PRIMARY KEY (idEmpleado),
ADD KEY fk_Cargo_1 (idCargo),
ADD KEY fk_IdentidadAutorizada (idIdentidadAutorizada);
--
-- Indices de la tabla Empresas
--
ALTER TABLE Empresas
ADD PRIMARY KEY (idEmpresa);
--
-- Indices de la tabla IdentidadAutorizada
--
ALTER TABLE IdentidadAutorizada
ADD PRIMARY KEY (idIdentidadAutorizada),
ADD KEY fk_idBodega_1 (idBodega);
--
-- Indices de la tabla Movimientos
--
ALTER TABLE Movimientos
ADD PRIMARY KEY (idMovimiento),
ADD KEY fk_Empleado (idEmpleado),
ADD KEY fk_Productbode (idProductbode);
--
-- Indices de la tabla Productbode
--
ALTER TABLE Productbode
ADD PRIMARY KEY (idProductbode),
ADD KEY fk_Bodega (idBodega),
ADD KEY fk_Producto (idProducto);
--
-- Indices de la tabla Productos
--
ALTER TABLE Productos
ADD PRIMARY KEY (idProducto);
--
-- AUTO_INCREMENT de las tablas volcadas
--
--
-- AUTO_INCREMENT de la tabla Bodegas
--
ALTER TABLE Bodegas
MODIFY idBodega int NOT NULL AUTO_INCREMENT;
--
-- AUTO_INCREMENT de la tabla Cargos
--
ALTER TABLE Cargos
MODIFY idCargo int NOT NULL AUTO_INCREMENT;
--
-- AUTO_INCREMENT de la tabla CargosAutorizados
--
ALTER TABLE CargosAutorizados
MODIFY idCargoAutorizado int NOT NULL AUTO_INCREMENT;
--
-- AUTO_INCREMENT de la tabla Empleados
--
ALTER TABLE Empleados
MODIFY idEmpleado int NOT NULL AUTO_INCREMENT;
--
-- AUTO_INCREMENT de la tabla Empresas
--
ALTER TABLE Empresas
MODIFY idEmpresa int NOT NULL AUTO_INCREMENT;
--
-- AUTO_INCREMENT de la tabla IdentidadAutorizada
--
ALTER TABLE IdentidadAutorizada
MODIFY idIdentidadAutorizada int NOT NULL AUTO_INCREMENT;
--
-- AUTO_INCREMENT de la tabla Movimientos
--
ALTER TABLE Movimientos
MODIFY idMovimiento int NOT NULL AUTO_INCREMENT;
--
-- AUTO_INCREMENT de la tabla Productbode
--
ALTER TABLE Productbode
MODIFY idProductbode int NOT NULL AUTO_INCREMENT;
--
-- AUTO_INCREMENT de la tabla Productos
--
ALTER TABLE Productos
MODIFY idProducto int NOT NULL AUTO_INCREMENT;
--
-- Restricciones para tablas volcadas
--
--
-- Filtros para la tabla Bodegas
--
ALTER TABLE Bodegas
ADD CONSTRAINT fk_CargoAutorizado FOREIGN KEY (idCargoAutorizado) REFERENCES CargosAutorizados (idCargoAutorizado),
ADD CONSTRAINT fk_Empresa FOREIGN KEY (idEmpresa) REFERENCES Empresas (idEmpresa);
--
-- Filtros para la tabla CargosAutorizados
--
ALTER TABLE CargosAutorizados
ADD CONSTRAINT fk_Cargo FOREIGN KEY (idCargo) REFERENCES Cargos (idCargo);
--
-- Filtros para la tabla Empleados
--
ALTER TABLE Empleados
ADD CONSTRAINT fk_Cargo_1 FOREIGN KEY (idCargo) REFERENCES Cargos (idCargo),
ADD CONSTRAINT fk_IdentidadAutorizada FOREIGN KEY (idIdentidadAutorizada) REFERENCES IdentidadAutorizada (idIdentidadAutorizada);
--
-- Filtros para la tabla IdentidadAutorizada
--
ALTER TABLE IdentidadAutorizada
ADD CONSTRAINT fk_idBodega_1 FOREIGN KEY (idBodega) REFERENCES Bodegas (idBodega);
--
-- Filtros para la tabla Movimientos
--
ALTER TABLE Movimientos
ADD CONSTRAINT fk_Empleado FOREIGN KEY (idEmpleado) REFERENCES Empleados (idEmpleado),
ADD CONSTRAINT fk_Productbode FOREIGN KEY (idProductbode) REFERENCES Productbode (idProductbode);
--
-- Filtros para la tabla Productbode
--
ALTER TABLE Productbode
ADD CONSTRAINT fk_Bodega FOREIGN KEY (idBodega) REFERENCES Bodegas (idBodega),
ADD CONSTRAINT fk_Producto FOREIGN KEY (idProducto) REFERENCES Productos (idProducto);
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
CONSULTAS
Enumere todos los empleados junto con sus respectivos puestos de trabajo:
SELECT e.idEmpleado, e.Nombre AS NombreEmpleado, c.Nombre AS Cargo
FROM tblEmpleados e
INNER JOIN tblCargos c ON e.idCargo = c.idCargo;
Recupera todos los productos almacenados en un almacén específico junto con sus cantidades:
SELECT pb.idProductbode, p.NombreP AS NombreProducto, pb.Cantidad
FROM tblProductbode pb
INNER JOIN tblProductos p ON pb.idProducto = p.idProducto
WHERE pb.idBodega = ;
Encuentre el número total de movimientos registrados para un producto en particular:
SELECT COUNT(*) AS TotalMovimientos
FROM tblMovimientos m
INNER JOIN tblProductbode pb ON m.idProductbode = pb.idProductbode
WHERE pb.idProducto = ;
Enumere todos los movimientos realizados por un empleado específico:
SELECT m.idMovimiento, m.Fecha, m.Hora, m.Descripción
FROM tblMovimientos m
INNER JOIN tblEmpleados e ON m.idEmpleado = e.idEmpleado
WHERE e.idEmpleado = ;
Recupera todos los almacenes junto con los nombres de las empresas a las que pertenecen:
SELECT b.idBodega, b.Nombre AS NombreBodega, e.NombreE AS NombreEmpresa
FROM tblBodegas b
INNER JOIN tblEmpresas e ON b.idEmpresa = e.idEmpresa;
Encuentre todas las identidades autorizadas para un almacén en particular:
SELECT ia.idIdentidadAutorizada, e.Nombre AS NombreEmpleado
FROM tblIdentidadAutorizada ia
INNER JOIN tblEmpleados e ON ia.idEmpleado = e.idEmpleado
WHERE ia.idBodega = ;
Enumere todos los productos junto con los almacenes en los que se almacenan:
SELECT p.idProducto, p.NombreP AS NombreProducto, b.Nombre AS NombreBodega
FROM tblProductbode pb
INNER JOIN tblProductos p ON pb.idProducto = p.idProducto
INNER JOIN tblBodegas b ON pb.idBodega = b.idBodega;
Recuperar todos los movimientos realizados en una fecha específica:
SELECT *
FROM tblMovimientos
WHERE Fecha = 'YYYY-MM-DD';
Encuentre todos los empleados autorizados a acceder a un almacén en particular:
SELECT e.idEmpleado, e.Nombre AS NombreEmpleado
FROM tblEmpleados e
INNER JOIN tblIdentidadAutorizada ia ON e.idIdentidadAutorizada = ia.idIdentidadAutorizada
WHERE ia.idBodega = ;
Listar todos los productos almacenados en almacenes junto con sus respectivas capacidades:
SELECT pb.idProductbode, p.NombreP AS NombreProducto, b.Capacidad
FROM tblProductbode pb
INNER JOIN tblProductos p ON pb.idProducto = p.idProducto
INNER JOIN tblBodegas b ON pb.idBodega = b.idBodega;
Encuentre todos los movimientos que involucran un producto específico dentro de un rango de fechas:
SELECT *
FROM tblMovimientos m
INNER JOIN tblProductbode pb ON m.idProductbode = pb.idProductbode
WHERE pb.idProducto =
AND m.Fecha BETWEEN 'start_date' AND 'end_date';
Recuperar todos los movimientos realizados por un empleado específico en una fecha particular:
SELECT *
FROM tblMovimientos
WHERE idEmpleado =
AND Fecha = 'YYYY-MM-DD';
Listar todos los productos junto con sus cantidades almacenadas en cada almacén:
SELECT pb.idProductbode, p.NombreP AS NombreProducto, b.Nombre AS NombreBodega, pb.Cantidad
FROM tblProductbode pb
INNER JOIN tblProductos p ON pb.idProducto = p.idProducto
INNER JOIN tblBodegas b ON pb.idBodega = b.idBodega;