Estructura JSON que define el esquema de base de datos relacional para un sistema de e-commerce con gestión de pedidos y repartos, incluyendo 20 tablas, tipos de datos, llaves primarias, foráneas e índices.
{
"sistema_ventas": {
"tablas": {
"usuarios": {
"campos": {
"id": "PK",
"nombre": "VARCHAR",
"email": "VARCHAR",
"rol": "ENUM('cliente', 'repartidor', 'admin')"
}
},
"perfiles": {
"campos": {
"id": "PK",
"usuario_id": "FK",
"telefono": "VARCHAR",
"direccion_predeterminada": "TEXT"
}
},
"categorias": {
"campos": {
"id": "PK",
"nombre": "VARCHAR"
}
},
"productos": {
"campos": {
"id": "PK",
"categoria_id": "FK",
"nombre": "VARCHAR",
"precio": "DECIMAL"
}
},
"inventario": {
"campos": {
"id": "PK",
"producto_id": "FK",
"cantidad": "INT"
}
},
"clientes": {
"campos": {
"id": "PK",
"usuario_id": "FK"
}
},
"pedidos": {
"campos": {
"id": "PK",
"cliente_id": "FK",
"estado": "ENUM('pendiente', 'en_ruta', 'entregado')",
"fecha": "TIMESTAMP"
}
},
"detalle_pedido": {
"campos": {
"id": "PK",
"pedido_id": "FK",
"producto_id": "FK",
"cantidad": "INT"
}
},
"pagos": {
"campos": {
"id": "PK",
"pedido_id": "FK",
"metodo": "ENUM('efectivo', 'tarjeta', 'transferencia')",
"monto": "DECIMAL"
}
},
"repartidores": {
"campos": {
"id": "PK",
"usuario_id": "FK",
"vehiculo": "VARCHAR"
}
},
"envios": {
"campos": {
"id": "PK",
"pedido_id": "FK",
"repartidor_id": "FK",
"ubicacion_actual": "POINT"
}
},
"direcciones": {
"campos": {
"id": "PK",
"cliente_id": "FK",
"coordenadas": "POINT"
}
},
"cupones": {
"campos": {
"id": "PK",
"codigo": "VARCHAR",
"descuento": "DECIMAL"
}
},
"pedido_cupon": {
"campos": {
"id": "PK",
"pedido_id": "FK",
"cupon_id": "FK"
}
},
"resenas": {
"campos": {
"id": "PK",
"pedido_id": "FK",
"calificacion": "INT",
"comentario": "TEXT"
}
},
"logs_auditoria": {
"campos": {
"id": "PK",
"accion": "VARCHAR",
"fecha": "TIMESTAMP"
}
},
"configuracion": {
"campos": {
"id": "PK",
"clave": "VARCHAR",
"valor": "VARCHAR"
}
},
"metodos_pago": {
"campos": {
"id": "PK",
"nombre": "VARCHAR"
}
},
"notificaciones": {
"campos": {
"id": "PK",
"usuario_id": "FK",
"mensaje": "TEXT"
}
},
"historial_estados": {
"campos": {
"id": "PK",
"pedido_id": "FK",
"estado": "VARCHAR",
"fecha": "TIMESTAMP"
}
}
},
"indices": [
"CREATE INDEX idx_pedidos_cliente ON pedidos(cliente_id)",
"CREATE INDEX idx_productos_categoria ON productos(categoria_id)",
"CREATE INDEX idx_envios_repartidor ON envios(repartidor_id)"
]
}
}