Esquema completo de base de datos para una plataforma de comercio electrónico y reparto a domicilio, incluyendo 20 tablas con campos, tipos de datos, claves primarias, claves foráneas y enumeraciones de estado.
{
"base_de_datos": "SistemaVentasDelivery",
"tablas": [
{
"nombre": "usuarios",
"campos": [
{
"nombre": "id",
"tipo": "UUID"
},
{
"nombre": "nombre",
"tipo": "VARCHAR(100)"
},
{
"nombre": "email",
"tipo": "VARCHAR(255)"
},
{
"nombre": "rol",
"tipo": "ENUM('cliente', 'repartidor', 'admin')"
}
],
"pk": "id"
},
{
"nombre": "direcciones",
"campos": [
{
"nombre": "id",
"tipo": "UUID"
},
{
"nombre": "usuario_id",
"tipo": "UUID"
},
{
"nombre": "direccion",
"tipo": "TEXT"
},
{
"nombre": "coordenadas",
"tipo": "POINT"
}
],
"pk": "id",
"fk": "usuario_id -> usuarios.id"
},
{
"nombre": "tiendas",
"campos": [
{
"nombre": "id",
"tipo": "UUID"
},
{
"nombre": "nombre",
"tipo": "VARCHAR(150)"
},
{
"nombre": "categoria",
"tipo": "VARCHAR(50)"
}
],
"pk": "id"
},
{
"nombre": "productos",
"campos": [
{
"nombre": "id",
"tipo": "UUID"
},
{
"nombre": "tienda_id",
"tipo": "UUID"
},
{
"nombre": "precio",
"tipo": "DECIMAL(10,2)"
},
{
"nombre": "nombre",
"tipo": "VARCHAR(100)"
}
],
"pk": "id",
"fk": "tienda_id -> tiendas.id"
},
{
"nombre": "pedidos",
"campos": [
{
"nombre": "id",
"tipo": "UUID"
},
{
"nombre": "usuario_id",
"tipo": "UUID"
},
{
"nombre": "estado",
"tipo": "ENUM('pendiente', 'preparando', 'en_camino', 'entregado')"
},
{
"nombre": "total",
"tipo": "DECIMAL(10,2)"
}
],
"pk": "id",
"fk": "usuario_id -> usuarios.id"
},
{
"nombre": "detalle_pedidos",
"campos": [
{
"nombre": "id",
"tipo": "UUID"
},
{
"nombre": "pedido_id",
"tipo": "UUID"
},
{
"nombre": "producto_id",
"tipo": "UUID"
},
{
"nombre": "cantidad",
"tipo": "INT"
}
],
"pk": "id",
"fk": "pedido_id -> pedidos.id, producto_id -> productos.id"
},
{
"nombre": "repartidores",
"campos": [
{
"nombre": "id",
"tipo": "UUID"
},
{
"nombre": "usuario_id",
"tipo": "UUID"
},
{
"nombre": "vehiculo",
"tipo": "VARCHAR(50)"
}
],
"pk": "id",
"fk": "usuario_id -> usuarios.id"
},
{
"nombre": "entregas",
"campos": [
{
"nombre": "id",
"tipo": "UUID"
},
{
"nombre": "pedido_id",
"tipo": "UUID"
},
{
"nombre": "repartidor_id",
"tipo": "UUID"
},
{
"nombre": "tiempo_estimado",
"tipo": "TIMESTAMP"
}
],
"pk": "id",
"fk": "pedido_id -> pedidos.id, repartidor_id -> repartidores.id"
},
{
"nombre": "pagos",
"campos": [
{
"nombre": "id",
"tipo": "UUID"
},
{
"nombre": "pedido_id",
"tipo": "UUID"
},
{
"nombre": "metodo",
"tipo": "ENUM('tarjeta', 'efectivo', 'billetera')"
}
],
"pk": "id",
"fk": "pedido_id -> pedidos.id"
},
{
"nombre": "cupones",
"campos": [
{
"nombre": "id",
"tipo": "UUID"
},
{
"nombre": "codigo",
"tipo": "VARCHAR(20)"
},
{
"nombre": "descuento",
"tipo": "DECIMAL(5,2)"
}
],
"pk": "id"
},
{
"nombre": "valoraciones",
"campos": [
{
"nombre": "id",
"tipo": "UUID"
},
{
"nombre": "pedido_id",
"tipo": "UUID"
},
{
"nombre": "puntaje",
"tipo": "INT"
}
],
"pk": "id",
"fk": "pedido_id -> pedidos.id"
},
{
"nombre": "horarios_tienda",
"campos": [
{
"nombre": "id",
"tipo": "UUID"
},
{
"nombre": "tienda_id",
"tipo": "UUID"
},
{
"nombre": "dia_semana",
"tipo": "INT"
}
],
"pk": "id",
"fk": "tienda_id -> tiendas.id"
},
{
"nombre": "categorias_producto",
"campos": [
{
"nombre": "id",
"tipo": "UUID"
},
{
"nombre": "nombre",
"tipo": "VARCHAR(50)"
}
],
"pk": "id"
},
{
"nombre": "producto_categoria",
"campos": [
{
"nombre": "producto_id",
"tipo": "UUID"
},
{
"nombre": "categoria_id",
"tipo": "UUID"
}
],
"fk": "producto_id -> productos.id, categoria_id -> categorias_producto.id"
},
{
"nombre": "notificaciones",
"campos": [
{
"nombre": "id",
"tipo": "UUID"
},
{
"nombre": "usuario_id",
"tipo": "UUID"
},
{
"nombre": "mensaje",
"tipo": "TEXT"
}
],
"pk": "id",
"fk": "usuario_id -> usuarios.id"
},
{
"nombre": "soporte",
"campos": [
{
"nombre": "id",
"tipo": "UUID"
},
{
"nombre": "usuario_id",
"tipo": "UUID"
},
{
"nombre": "estado",
"tipo": "ENUM('abierto', 'cerrado')"
}
],
"pk": "id",
"fk": "usuario_id -> usuarios.id"
},
{
"nombre": "mensajes_soporte",
"campos": [
{
"nombre": "id",
"tipo": "UUID"
},
{
"nombre": "soporte_id",
"tipo": "UUID"
},
{
"nombre": "contenido",
"tipo": "TEXT"
}
],
"pk": "id",
"fk": "soporte_id -> soporte.id"
},
{
"nombre": "inventario",
"campos": [
{
"nombre": "id",
"tipo": "UUID"
},
{
"nombre": "producto_id",
"tipo": "UUID"
},
{
"nombre": "cantidad",
"tipo": "INT"
}
],
"pk": "id",
"fk": "producto_id -> productos.id"
},
{
"nombre": "promociones",
"campos": [
{
"nombre": "id",
"tipo": "UUID"
},
{
"nombre": "tienda_id",
"tipo": "UUID"
},
{
"nombre": "descripcion",
"tipo": "TEXT"
}
],
"pk": "id",
"fk": "tienda_id -> tiendas.id"
},
{
"nombre": "auditoria",
"campos": [
{
"nombre": "id",
"tipo": "UUID"
},
{
"nombre": "accion",
"tipo": "VARCHAR(255)"
},
{
"nombre": "fecha",
"tipo": "TIMESTAMP"
}
],
"pk": "id"
}
]
}