Ejemplo de diseño utilizando el modelo de caso de uso y relacional para una base de datos de una tienda en línea.
Ejemplo de diseño utilizando el modelo de caso de uso y relacional para una base de datos de una tienda en línea.
1. Modelo de Caso de Uso
🎭 Actores principales:
- Cliente:
usuario que navega y compra productos.
- Administrador:
usuario que gestiona el catálogo, pedidos y reportes.
📌 Casos de Uso (por
actor):
Cliente:
- Registrarse:
Crear una cuenta.
- Iniciar
sesión: Acceder al sistema.
- Buscar
productos: Usar filtros o categorías.
- Ver
detalles de producto: Consultar precio, descripción, stock.
- Agregar
al carrito: Seleccionar productos.
- Realizar
pedido: Confirmar la compra.
- Ver
historial de pedidos: Consultar compras anteriores.
Administrador:
- Gestionar
productos: Agregar, actualizar o eliminar productos.
- Gestionar
clientes: Ver y editar información de usuarios.
- Ver
pedidos: Revisar compras realizadas.
- Generar
reportes: Consultar estadísticas de ventas.
🗃️ 2. Modelo Relacional
👥 Tabla: Clientes
|
Campo |
Tipo de dato |
Descripción |
|
id_cliente |
INT (PK) |
Identificador único del cliente |
|
nombre |
VARCHAR(100) |
Nombre completo |
|
correo |
VARCHAR(100) |
Correo electrónico (único) |
|
contraseña |
VARCHAR(100) |
Contraseña cifrada |
|
dirección |
VARCHAR(150) |
Dirección de envío |
|
fecha_registro |
DATE |
Fecha de creación de cuenta |
📦 Tabla: Productos
|
Campo |
Tipo de dato |
Descripción |
|
id_producto |
INT (PK) |
Identificador único del producto |
|
nombre |
VARCHAR(100) |
Nombre del producto |
|
descripción |
TEXT |
Descripción detallada del producto |
|
precio |
DECIMAL(10,2) |
Precio unitario |
|
stock |
INT |
Cantidad disponible |
|
categoria |
VARCHAR(50) |
Categoría a la que pertenece |
|
imagen_url |
VARCHAR(200) |
Ruta a la imagen del producto |
🛒 Tabla: Carrito
|
Campo |
Tipo de dato |
Descripción |
|
id_carrito |
INT (PK) |
Identificador único del carrito |
|
id_cliente |
INT (FK) |
Cliente al que pertenece |
🛍️ Tabla: Carrito_Detalle
|
Campo |
Tipo de dato |
Descripción |
|
id_detalle |
INT (PK) |
Identificador del registro |
|
id_carrito |
INT (FK) |
Carrito al que pertenece |
|
id_producto |
INT (FK) |
Producto agregado |
|
cantidad |
INT |
Unidades del producto |
📑 Tabla: Pedidos
|
Campo |
Tipo de dato |
Descripción |
|
id_pedido |
INT (PK) |
Identificador único del pedido |
|
id_cliente |
INT (FK) |
Cliente que hizo la compra |
|
fecha_pedido |
DATE |
Fecha del pedido |
|
estado |
VARCHAR(30) |
Estado del pedido (procesado, enviado, etc.) |
|
total |
DECIMAL(10,2) |
Total pagado |
📦 Tabla: Detalle_Pedido
|
Campo |
Tipo de dato |
Descripción |
|
id_detalle |
INT (PK) |
Identificador del detalle |
|
id_pedido |
INT (FK) |
Pedido al que pertenece |
|
id_producto |
INT (FK) |
Producto comprado |
|
cantidad |
INT |
Cantidad adquirida |
|
precio_unitario |
DECIMAL(10,2) |
Precio al momento de la compra |
🧑💼 Tabla: Administradores
|
Campo |
Tipo de dato |
Descripción |
|
id_admin |
INT (PK) |
ID único del administrador |
|
nombre |
VARCHAR(100) |
Nombre del admin |
|
usuario |
VARCHAR(50) |
Nombre de usuario |
|
contraseña |
VARCHAR(100) |
Contraseña cifrada |
Relación entre Tablas
- Un
cliente puede tener muchos pedidos.
- Un
pedido puede contener varios productos (a través de Detalle_Pedido).
- Un
cliente puede tener un carrito, y un carrito puede tener
muchos productos (Carrito_Detalle).
- Un
producto puede estar en muchos pedidos y carritos.

Comentarios
Publicar un comentario