Estructura JSON que define el esquema de base de datos para una aplicación de ventas y domicilios, incluyendo tablas, campos, tipos de datos, llaves primarias, foráneas y enumeraciones.
{
"sistema_ventas": {
"enumeraciones": {
"estado_pedido": [
"PENDIENTE",
"EN_PREPARACION",
"EN_RUTA",
"ENTREGADO",
"CANCELADO"
],
"tipo_pago": [
"EFECTIVO",
"TARJETA_CREDITO",
"TRANSFERENCIA",
"PAYPAL"
]
},
"tablas": [
{
"nombre": "usuarios",
"columnas": [
"id",
"nombre",
"email",
"password_hash",
"telefono",
"rol"
]
},
{
"nombre": "direcciones",
"columnas": [
"id",
"usuario_id",
"direccion",
"ciudad",
"codigo_postal",
"es_principal"
]
},
{
"nombre": "categorias",
"columnas": [
"id",
"nombre",
"descripcion"
]
},
{
"nombre": "productos",
"columnas": [
"id",
"categoria_id",
"nombre",
"precio",
"stock",
"descripcion"
]
},
{
"nombre": "pedidos",
"columnas": [
"id",
"usuario_id",
"direccion_id",
"fecha",
"estado",
"total"
]
},
{
"nombre": "detalle_pedidos",
"columnas": [
"id",
"pedido_id",
"producto_id",
"cantidad",
"precio_unitario"
]
},
{
"nombre": "pagos",
"columnas": [
"id",
"pedido_id",
"metodo",
"fecha",
"monto"
]
},
{
"nombre": "restaurantes",
"columnas": [
"id",
"nombre",
"direccion",
"telefono"
]
},
{
"nombre": "repartidores",
"columnas": [
"id",
"nombre",
"vehiculo",
"disponibilidad"
]
},
{
"nombre": "envios",
"columnas": [
"id",
"pedido_id",
"repartidor_id",
"fecha_entrega"
]
},
{
"nombre": "cupones",
"columnas": [
"id",
"codigo",
"descuento",
"fecha_vencimiento"
]
},
{
"nombre": "resenas",
"columnas": [
"id",
"usuario_id",
"pedido_id",
"calificacion",
"comentario"
]
},
{
"nombre": "inventario",
"columnas": [
"id",
"producto_id",
"restaurante_id",
"cantidad"
]
},
{
"nombre": "promociones",
"columnas": [
"id",
"producto_id",
"porcentaje",
"activo"
]
},
{
"nombre": "carrito",
"columnas": [
"id",
"usuario_id"
]
},
{
"nombre": "carrito_items",
"columnas": [
"id",
"carrito_id",
"producto_id",
"cantidad"
]
},
{
"nombre": "historial_estados",
"columnas": [
"id",
"pedido_id",
"estado",
"timestamp"
]
},
{
"nombre": "notificaciones",
"columnas": [
"id",
"usuario_id",
"mensaje",
"leido"
]
},
{
"nombre": "metodos_pago_usuario",
"columnas": [
"id",
"usuario_id",
"token_pago",
"tipo"
]
},
{
"nombre": "logs_sistema",
"columnas": [
"id",
"evento",
"usuario_id",
"fecha"
]
}
],
"relaciones": [
{
"origen": "direcciones.usuario_id",
"destino": "usuarios.id"
},
{
"origen": "productos.categoria_id",
"destino": "categorias.id"
},
{
"origen": "pedidos.usuario_id",
"destino": "usuarios.id"
},
{
"origen": "detalle_pedidos.pedido_id",
"destino": "pedidos.id"
},
{
"origen": "envios.pedido_id",
"destino": "pedidos.id"
},
{
"origen": "envios.repartidor_id",
"destino": "repartidores.id"
}
],
"indices": [
{
"tabla": "usuarios",
"campo": "email",
"tipo": "UNIQUE"
},
{
"tabla": "pedidos",
"campo": "usuario_id",
"tipo": "INDEX"
},
{
"tabla": "productos",
"campo": "nombre",
"tipo": "INDEX"
}
]
}
}