CREATE DATABASE LogisticaRegalos;
USE LogisticaRegalos;
-- Tabla de Clientes
CREATE TABLE Clientes (
id_cliente INT PRIMARY KEY,
nombre VARCHAR(100),
primer_apellido VARCHAR(50),
segundo_apellido VARCHAR(50),
telefono VARCHAR(20),
correo_electronico VARCHAR(100),
direccion_entrega VARCHAR(150)
);
-- Tabla de Productos
CREATE TABLE Productos (
id_producto INT PRIMARY KEY,
nombre_producto VARCHAR(100),
descripcion TEXT,
precio DECIMAL(10,2),
stock_disponible INT
);
-- Tabla de Pedidos
CREATE TABLE Pedidos (
id_pedido INT PRIMARY KEY,
id_cliente INT,
fecha_pedido DATE,
estado_pedido ENUM('Pendiente', 'En preparación', 'En camino', 'Entregado'),
total_pedido DECIMAL(10,2),
FOREIGN KEY (id_cliente) REFERENCES Clientes(id_cliente)
);
-- Tabla intermedia Detalle_Pedido (muchos a muchos)
CREATE TABLE Detalle_Pedido (
id_detalle INT AUTO_INCREMENT PRIMARY KEY,
id_pedido INT,
id_producto INT,
cantidad INT,
FOREIGN KEY (id_pedido) REFERENCES Pedidos(id_pedido),
FOREIGN KEY (id_producto) REFERENCES Productos(id_producto)
);
-- Tabla de Repartidores
CREATE TABLE Repartidores (
id_repartidor INT PRIMARY KEY,
nombre_completo VARCHAR(100),
telefono VARCHAR(20),
vehiculo_asignado VARCHAR(50)
);
-- Seguimiento de Entregas
CREATE TABLE Seguimiento_Entregas (
id_seguimiento INT PRIMARY KEY,
id_pedido INT UNIQUE,
id_repartidor INT,
ubicacion_actual VARCHAR(150),
fecha_hora_actualizacion DATETIME,
estado_entrega ENUM('En ruta', 'Entregado', 'Problema en la entrega'),
FOREIGN KEY (id_pedido) REFERENCES Pedidos(id_pedido),
FOREIGN KEY (id_repartidor) REFERENCES Repartidores(id_repartidor)
);
-- Inventario
CREATE TABLE Inventario (
id_inventario INT PRIMARY KEY,
id_producto INT,
cantidad_stock INT,
fecha_actualizacion DATE,
FOREIGN KEY (id_producto) REFERENCES Productos(id_producto)
);