Saltar a contenido

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)

AClimate v3 Modelo Entidad-Relación

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