8/09/2024

Estructura de la Base de Datos

 En esta actividad vamos a crear una base de datos de un comercio de electrodoméstico y mueblería 

1.1. Tabla de Productos

Esta tabla almacena la información sobre cada producto disponible en el comercio.

  • productos
    • producto_id (INT, PRIMARY KEY, AUTO_INCREMENT): Identificador único del producto.
    • nombre (VARCHAR(100)): Nombre del producto.
    • descripcion (TEXT): Descripción del producto.
    • categoria (VARCHAR(50)): Categoría del producto (por ejemplo, muebles, electrodomésticos).
    • precio (DECIMAL(10, 2)): Precio del producto.
    • stock (INT): Cantidad en stock.
    • proveedor_id (INT, FOREIGN KEY): Identificador del proveedor.
    • fecha_agregado (DATE): Fecha en que se agregó el producto a la base de datos.

1.2. Tabla de Proveedores

Esta tabla contiene información sobre los proveedores que suministran los productos.

  • proveedores
    • proveedor_id (INT, PRIMARY KEY, AUTO_INCREMENT): Identificador único del proveedor.
    • nombre (VARCHAR(100)): Nombre del proveedor.
    • direccion (VARCHAR(200)): Dirección del proveedor.
    • telefono (VARCHAR(20)): Número de teléfono del proveedor.
    • email (VARCHAR(100)): Correo electrónico del proveedor.

1.3. Tabla de Clientes

Esta tabla contiene la información de los clientes que compran productos en el comercio.

  • clientes
    • cliente_id (INT, PRIMARY KEY, AUTO_INCREMENT): Identificador único del cliente.
    • nombre (VARCHAR(100)): Nombre del cliente.
    • direccion (VARCHAR(200)): Dirección del cliente.
    • telefono (VARCHAR(20)): Número de teléfono del cliente.
    • email (VARCHAR(100)): Correo electrónico del cliente.

1.4. Tabla de Ventas

Esta tabla registra las ventas realizadas en el comercio.

  • ventas
    • venta_id (INT, PRIMARY KEY, AUTO_INCREMENT): Identificador único de la venta.
    • cliente_id (INT, FOREIGN KEY): Identificador del cliente que realizó la compra.
    • fecha (DATE): Fecha de la venta.
    • total (DECIMAL(10, 2)): Monto total de la venta.

1.5. Tabla de Detalles de Venta

Esta tabla almacena los detalles de cada venta, incluyendo los productos vendidos.

  • detalles_venta
    • detalle_id (INT, PRIMARY KEY, AUTO_INCREMENT): Identificador único del detalle de la venta.
    • venta_id (INT, FOREIGN KEY): Identificador de la venta.
    • producto_id (INT, FOREIGN KEY): Identificador del producto vendido.
    • cantidad (INT): Cantidad de producto vendido.
    • precio_unitario (DECIMAL(10, 2)): Precio unitario del producto al momento de la venta.
    • subtotal (DECIMAL(10, 2)): Subtotal para este producto (cantidad * precio_unitario).

1.6. Tabla de Procedimientos

Esta tabla almacena los procedimientos internos del comercio.

  • procedimientos
    • procedimiento_id (INT, PRIMARY KEY, AUTO_INCREMENT): Identificador único del procedimiento.
    • nombre (VARCHAR(100)): Nombre del procedimiento.
    • descripcion (TEXT): Descripción detallada del procedimiento.
    • fecha_actualizacion (DATE): Fecha de la última actualización del procedimiento.

2. Relaciones entre Tablas

  • productos y proveedores: La relación es de muchos a uno. Cada producto está asociado con un proveedor.
  • ventas y clientes: La relación es de muchos a uno. Cada venta está asociada con un cliente.
  • detalles_venta y ventas: La relación es de muchos a uno. Cada detalle de venta está asociado con una venta.
  • detalles_venta y productos: La relación es de muchos a uno. Cada detalle de venta está asociado con un producto.


3. Ejemplo de Consultas SQL

Agregar un nuevo producto


INSERT INTO productos (nombre, descripcion, categoria, precio, stock, proveedor_id, fecha_agregado) VALUES ('Sofá de Cuero', 'Sofá de cuero de 3 plazas', 'muebles', 45000.00, 10, 1, '2024-08-09');

Registrar una venta


INSERT INTO ventas (cliente_id, fecha, total) VALUES (1, '2024-08-09', 150000.00);

Agregar detalles de venta


INSERT INTO detalles_venta (venta_id, producto_id, cantidad, precio_unitario, subtotal) VALUES (1, 1, 2, 45000.00, 90000.00);

Actualizar stock después de una venta


UPDATE productos SET stock = stock - 2 WHERE producto_id = 1;

Obtener información de ventas de un cliente específico

SELECT v.venta_id, v.fecha, v.total
FROM ventas v JOIN clientes c ON v.cliente_id = c.cliente_id WHERE c.nombre = 'Juan Pérez';







-- Creación de la base de datos CREATE DATABASE IF NOT EXISTS comercio; USE comercio; -- Tabla de Proveedores CREATE TABLE proveedores ( proveedor_id INT AUTO_INCREMENT PRIMARY KEY, nombre VARCHAR(100) NOT NULL, direccion VARCHAR(200), telefono VARCHAR(20), email VARCHAR(100) ); -- Tabla de Productos CREATE TABLE productos ( producto_id INT AUTO_INCREMENT PRIMARY KEY, nombre VARCHAR(100) NOT NULL, descripcion TEXT, categoria VARCHAR(50), precio DECIMAL(10, 2) NOT NULL, stock INT NOT NULL, proveedor_id INT, fecha_agregado DATE, FOREIGN KEY (proveedor_id) REFERENCES proveedores(proveedor_id) ); -- Tabla de Clientes CREATE TABLE clientes ( cliente_id INT AUTO_INCREMENT PRIMARY KEY, nombre VARCHAR(100) NOT NULL, direccion VARCHAR(200), telefono VARCHAR(20), email VARCHAR(100) ); -- Tabla de Ventas CREATE TABLE ventas ( venta_id INT AUTO_INCREMENT PRIMARY KEY, cliente_id INT, fecha DATE NOT NULL, total DECIMAL(10, 2) NOT NULL, FOREIGN KEY (cliente_id) REFERENCES clientes(cliente_id) ); -- Tabla de Detalles de Venta CREATE TABLE detalles_venta ( detalle_id INT AUTO_INCREMENT PRIMARY KEY, venta_id INT, producto_id INT, cantidad INT NOT NULL, precio_unitario DECIMAL(10, 2) NOT NULL, subtotal DECIMAL(10, 2) NOT NULL, FOREIGN KEY (venta_id) REFERENCES ventas(venta_id), FOREIGN KEY (producto_id) REFERENCES productos(producto_id) ); -- Tabla de Procedimientos CREATE TABLE procedimientos ( procedimiento_id INT AUTO_INCREMENT PRIMARY KEY, nombre VARCHAR(100) NOT NULL, descripcion TEXT, fecha_actualizacion DATE );

Glosario de Windows

Computadora:  Es un aparato electrónico, capaz de procesar cualquier tipo de información, de forma rápida y eficiente. La cual es presenta...