03. Modelo de Datos¶
El modelo de datos es la base de AClimate v3. El paquete aclimate_v3_orm es la definición autoritaria que contiene todos los modelos SQLAlchemy, esquemas Pydantic, migraciones Alembic, servicios y validaciones.
Modelo Entidad-Relación (MER)¶

Rol del ORM como Fuente de Verdad¶
El paquete aclimate_v3_orm define:
- Modelos (31 entidades): Definiciones de entidades SQLAlchemy con columnas, tipos, restricciones y relaciones
- Esquemas (31): Contratos de serialización/deserialización Pydantic para la API
- Servicios (31): Lógica de negocio para operaciones CRUD
- Validaciones (31): Reglas de integridad y restricciones
- Enums (7): Enumeraciones compartidas
- Migraciones: Evolución del esquema versionada con Alembic
Base de Datos¶
PostgreSQL es el almacén de datos principal. El esquema se gestiona completamente a través de los modelos ORM SQLAlchemy con migraciones Alembic para el control de versiones.
Convenciones del Modelo de Datos¶
| Convención | Descripción |
|---|---|
| Nombres | Snake_case para tablas y columnas (convención de PostgreSQL) |
| Claves primarias | Auto-incremento entero (id) para la mayoría de tablas; BigInteger para tablas de alto volumen |
| Marcas de tiempo | Cada entidad incluye register (created_at) y updated (updated_at) con soporte de zona horaria |
| Borrado suave | Las entidades se deshabilitan mediante una columna booleana enable (no se eliminan físicamente) |
| Claves foráneas | Restricciones explícitas ForeignKey con columnas indexadas |
| Relaciones | Definidas con relationship() de SQLAlchemy para navegación ORM |
Dominios de Esquema¶
Las entidades ORM están organizadas en dominios funcionales:
| Prefijo | Dominio | Cantidad | Descripción |
|---|---|---|---|
mng_ |
Gestión | 20 | Entidades de configuración central (países, cultivos, suelos, indicadores) |
forecast_ |
Pronóstico | 2 | Ejecuciones de pronóstico y datos análogos |
climate_historical_ |
Clima | 4 | Observaciones climáticas históricas y datos derivados |
historical_agroclimatic_ |
Agroclimático | 1 | Indicadores agroclimáticos procesados |
phenological_stage_ |
Fenología | 1 | Etapas fenológicas de cultivos y datos de estrés |
user_ / users |
Seguridad | 3 | Usuarios, roles y control de acceso |
Secciones¶
- Entidades de Gestión — 20 entidades: países, cultivos, suelos, indicadores, etc.
- Entidades de Pronóstico — Forecast y ForecastAnalogue
- Entidades de Clima — Daily, Monthly, Climatology, Indicator
- Entidades de Seguridad — User, Role, UserAccess
- Enumeraciones — 7 enums compartidos
- Relaciones — Claves foráneas y cardinalidad