generor
{ } Generatore Public

{ } JSON #11352

Modelo relacional para sistema de ventas y domicilios

Estructura JSON que define el esquema de una base de datos relacional con 20 tablas, incluyendo claves primarias, foráneas, índices y enumeraciones para un sistema de gestión de ventas y logística de domicilios.

{ } Oggetto ✓ Valido
{
    "schema": "ecommerce_delivery",
    "tables": [
        {
            "table_name": "usuarios",
            "columns": [
                "id",
                "nombre",
                "email",
                "rol",
                "fecha_registro"
            ],
            "primary_key": "id",
            "indexes": [
                "email"
            ]
        },
        {
            "table_name": "perfiles",
            "columns": [
                "id",
                "usuario_id",
                "telefono",
                "direccion_predeterminada"
            ],
            "foreign_keys": [
                {
                    "column": "usuario_id",
                    "references": "usuarios(id)"
                }
            ]
        },
        {
            "table_name": "categorias",
            "columns": [
                "id",
                "nombre",
                "descripcion"
            ],
            "primary_key": "id"
        },
        {
            "table_name": "productos",
            "columns": [
                "id",
                "nombre",
                "precio",
                "categoria_id",
                "stock"
            ],
            "foreign_keys": [
                {
                    "column": "categoria_id",
                    "references": "categorias(id)"
                }
            ]
        },
        {
            "table_name": "metodos_pago",
            "columns": [
                "id",
                "nombre_metodo"
            ],
            "enumerations": [
                "Tarjeta",
                "Efectivo",
                "Transferencia",
                "PayPal"
            ]
        },
        {
            "table_name": "pedidos",
            "columns": [
                "id",
                "usuario_id",
                "fecha",
                "estado",
                "metodo_pago_id",
                "total"
            ],
            "foreign_keys": [
                {
                    "column": "usuario_id",
                    "references": "usuarios(id)"
                },
                {
                    "column": "metodo_pago_id",
                    "references": "metodos_pago(id)"
                }
            ],
            "indexes": [
                "estado",
                "fecha"
            ]
        },
        {
            "table_name": "detalles_pedido",
            "columns": [
                "id",
                "pedido_id",
                "producto_id",
                "cantidad",
                "precio_unitario"
            ],
            "foreign_keys": [
                {
                    "column": "pedido_id",
                    "references": "pedidos(id)"
                },
                {
                    "column": "producto_id",
                    "references": "productos(id)"
                }
            ]
        },
        {
            "table_name": "repartidores",
            "columns": [
                "id",
                "nombre",
                "vehiculo",
                "estado_disponibilidad"
            ],
            "enumerations": [
                "Disponible",
                "Ocupado",
                "Inactivo"
            ]
        },
        {
            "table_name": "envios",
            "columns": [
                "id",
                "pedido_id",
                "repartidor_id",
                "estado_envio",
                "ubicacion_actual",
                "fecha_entrega"
            ],
            "foreign_keys": [
                {
                    "column": "pedido_id",
                    "references": "pedidos(id)"
                },
                {
                    "column": "repartidor_id",
                    "references": "repartidores(id)"
                }
            ],
            "indexes": [
                "estado_envio"
            ]
        },
        {
            "table_name": "direcciones",
            "columns": [
                "id",
                "usuario_id",
                "alias",
                "direccion_completa",
                "coordenadas"
            ],
            "foreign_keys": [
                {
                    "column": "usuario_id",
                    "references": "usuarios(id)"
                }
            ]
        },
        {
            "table_name": "cupones",
            "columns": [
                "id",
                "codigo",
                "descuento",
                "fecha_expiracion"
            ],
            "indexes": [
                "codigo"
            ]
        },
        {
            "table_name": "historial_estados",
            "columns": [
                "id",
                "pedido_id",
                "estado_anterior",
                "nuevo_estado",
                "fecha_cambio"
            ],
            "foreign_keys": [
                {
                    "column": "pedido_id",
                    "references": "pedidos(id)"
                }
            ]
        },
        {
            "table_name": "valoraciones",
            "columns": [
                "id",
                "pedido_id",
                "calificacion",
                "comentario"
            ],
            "foreign_keys": [
                {
                    "column": "pedido_id",
                    "references": "pedidos(id)"
                }
            ]
        },
        {
            "table_name": "inventario",
            "columns": [
                "id",
                "producto_id",
                "cantidad_almacen",
                "ubicacion_bodega"
            ],
            "foreign_keys": [
                {
                    "column": "producto_id",
                    "references": "productos(id)"
                }
            ]
        },
        {
            "table_name": "proveedores",
            "columns": [
                "id",
                "nombre_empresa",
                "contacto"
            ],
            "primary_key": "id"
        },
        {
            "table_name": "producto_proveedor",
            "columns": [
                "producto_id",
                "proveedor_id"
            ],
            "foreign_keys": [
                {
                    "column": "producto_id",
                    "references": "productos(id)"
                },
                {
                    "column": "proveedor_id",
                    "references": "proveedores(id)"
                }
            ]
        },
        {
            "table_name": "notificaciones",
            "columns": [
                "id",
                "usuario_id",
                "mensaje",
                "leido",
                "fecha"
            ],
            "foreign_keys": [
                {
                    "column": "usuario_id",
                    "references": "usuarios(id)"
                }
            ]
        },
        {
            "table_name": "configuracion",
            "columns": [
                "id",
                "llave",
                "valor"
            ],
            "primary_key": "id"
        },
        {
            "table_name": "auditoria",
            "columns": [
                "id",
                "tabla_afectada",
                "accion",
                "usuario_id",
                "timestamp"
            ],
            "foreign_keys": [
                {
                    "column": "usuario_id",
                    "references": "usuarios(id)"
                }
            ]
        },
        {
            "table_name": "soporte_tickets",
            "columns": [
                "id",
                "usuario_id",
                "asunto",
                "estado_ticket"
            ],
            "foreign_keys": [
                {
                    "column": "usuario_id",
                    "references": "usuarios(id)"
                }
            ]
        }
    ]
}
Prompt: generame el modelo relacional sql, para una aplicacion de ventas y domicilios, entregamelo en forma json con indices y relaciones y enumeraciones necesarias, las definiciones de las tablas y campos.al menos 20 tablas
🤖 Gemini 3.1 Flash Lite Spanish (Spain) 1 credito 3.9s