Estructura JSON que define 20 tablas para un sistema de gestión de ventas y logística de domicilios, incluyendo tipos de datos, llaves primarias, llaves foráneas e índices.
{
"base_de_datos": "SistemaVentasDomicilios",
"tablas": [
{
"nombre": "usuarios",
"campos": [
{
"nombre": "id",
"tipo": "BIGINT",
"restriccion": "PRIMARY KEY"
},
{
"nombre": "email",
"tipo": "VARCHAR(255)",
"restriccion": "UNIQUE"
},
{
"nombre": "rol",
"tipo": "ENUM('admin', 'cliente', 'repartidor')"
}
],
"indices": [
"idx_email"
]
},
{
"nombre": "perfiles",
"campos": [
{
"nombre": "id",
"tipo": "BIGINT",
"restriccion": "PRIMARY KEY"
},
{
"nombre": "usuario_id",
"tipo": "BIGINT",
"restriccion": "FOREIGN KEY REFERENCES usuarios(id)"
},
{
"nombre": "nombre",
"tipo": "VARCHAR(100)"
}
]
},
{
"nombre": "categorias",
"campos": [
{
"nombre": "id",
"tipo": "INT",
"restriccion": "PRIMARY KEY"
},
{
"nombre": "nombre",
"tipo": "VARCHAR(50)"
}
]
},
{
"nombre": "productos",
"campos": [
{
"nombre": "id",
"tipo": "BIGINT",
"restriccion": "PRIMARY KEY"
},
{
"nombre": "categoria_id",
"tipo": "INT",
"restriccion": "FOREIGN KEY REFERENCES categorias(id)"
},
{
"nombre": "precio",
"tipo": "DECIMAL(10,2)"
}
],
"indices": [
"idx_categoria"
]
},
{
"nombre": "pedidos",
"campos": [
{
"nombre": "id",
"tipo": "BIGINT",
"restriccion": "PRIMARY KEY"
},
{
"nombre": "cliente_id",
"tipo": "BIGINT",
"restriccion": "FOREIGN KEY REFERENCES usuarios(id)"
},
{
"nombre": "estado",
"tipo": "ENUM('pendiente', 'en_ruta', 'entregado', 'cancelado')"
},
{
"nombre": "fecha_creacion",
"tipo": "TIMESTAMP"
}
]
},
{
"nombre": "detalles_pedido",
"campos": [
{
"nombre": "id",
"tipo": "BIGINT",
"restriccion": "PRIMARY KEY"
},
{
"nombre": "pedido_id",
"tipo": "BIGINT",
"restriccion": "FOREIGN KEY REFERENCES pedidos(id)"
},
{
"nombre": "producto_id",
"tipo": "BIGINT",
"restriccion": "FOREIGN KEY REFERENCES productos(id)"
}
]
},
{
"nombre": "direcciones",
"campos": [
{
"nombre": "id",
"tipo": "BIGINT",
"restriccion": "PRIMARY KEY"
},
{
"nombre": "usuario_id",
"tipo": "BIGINT",
"restriccion": "FOREIGN KEY REFERENCES usuarios(id)"
}
]
},
{
"nombre": "pagos",
"campos": [
{
"nombre": "id",
"tipo": "BIGINT",
"restriccion": "PRIMARY KEY"
},
{
"nombre": "pedido_id",
"tipo": "BIGINT",
"restriccion": "FOREIGN KEY REFERENCES pedidos(id)"
}
]
},
{
"nombre": "repartidores",
"campos": [
{
"nombre": "id",
"tipo": "BIGINT",
"restriccion": "PRIMARY KEY"
},
{
"nombre": "usuario_id",
"tipo": "BIGINT",
"restriccion": "FOREIGN KEY REFERENCES usuarios(id)"
}
]
},
{
"nombre": "envios",
"campos": [
{
"nombre": "id",
"tipo": "BIGINT",
"restriccion": "PRIMARY KEY"
},
{
"nombre": "pedido_id",
"tipo": "BIGINT",
"restriccion": "FOREIGN KEY REFERENCES pedidos(id)"
}
]
},
{
"nombre": "inventario",
"campos": [
{
"nombre": "id",
"tipo": "BIGINT",
"restriccion": "PRIMARY KEY"
},
{
"nombre": "producto_id",
"tipo": "BIGINT",
"restriccion": "FOREIGN KEY REFERENCES productos(id)"
}
]
},
{
"nombre": "proveedores",
"campos": [
{
"nombre": "id",
"tipo": "INT",
"restriccion": "PRIMARY KEY"
},
{
"nombre": "nombre",
"tipo": "VARCHAR(100)"
}
]
},
{
"nombre": "productos_proveedores",
"campos": [
{
"nombre": "producto_id",
"tipo": "BIGINT"
},
{
"nombre": "proveedor_id",
"tipo": "INT"
}
]
},
{
"nombre": "cupones",
"campos": [
{
"nombre": "id",
"tipo": "INT",
"restriccion": "PRIMARY KEY"
},
{
"nombre": "codigo",
"tipo": "VARCHAR(20)"
}
]
},
{
"nombre": "reseñas",
"campos": [
{
"nombre": "id",
"tipo": "BIGINT",
"restriccion": "PRIMARY KEY"
},
{
"nombre": "producto_id",
"tipo": "BIGINT"
}
]
},
{
"nombre": "favoritos",
"campos": [
{
"nombre": "usuario_id",
"tipo": "BIGINT"
},
{
"nombre": "producto_id",
"tipo": "BIGINT"
}
]
},
{
"nombre": "notificaciones",
"campos": [
{
"nombre": "id",
"tipo": "BIGINT",
"restriccion": "PRIMARY KEY"
},
{
"nombre": "usuario_id",
"tipo": "BIGINT"
}
]
},
{
"nombre": "auditoria_log",
"campos": [
{
"nombre": "id",
"tipo": "BIGINT",
"restriccion": "PRIMARY KEY"
},
{
"nombre": "accion",
"tipo": "TEXT"
}
]
},
{
"nombre": "metodos_pago",
"campos": [
{
"nombre": "id",
"tipo": "INT",
"restriccion": "PRIMARY KEY"
},
{
"nombre": "nombre",
"tipo": "VARCHAR(50)"
}
]
},
{
"nombre": "configuraciones",
"campos": [
{
"nombre": "clave",
"tipo": "VARCHAR(50)",
"restriccion": "PRIMARY KEY"
},
{
"nombre": "valor",
"tipo": "TEXT"
}
]
}
]
}