Модель данных#

1. Entity: field#

Назначение: базовый объект агрономического учета (поле/участок) в контуре хозяйства.

Поля:

  • id — идентификатор поля.

  • tenant_id — идентификатор хозяйства.

  • site_id — идентификатор площадки.

  • name — наименование поля.

  • area_ha — площадь поля (га).

  • crop_code — код культуры.

  • status — состояние (active|archived).

  • updated_at — время последнего обновления.

2. Entity: field_zone#

Назначение: изолированная зона поля с отдельной гидрологической/технологической моделью.

Поля:

  • id — идентификатор зоны.

  • field_id — ссылка на field.

  • name — имя зоны.

  • area_ha — площадь зоны (га).

  • soil_type — тип почвы.

  • irrigation_profile_id — привязка к профилю норм/режима полива.

  • updated_at — время последнего обновления.

3. Entity: water_source#

Назначение: нормализованное описание источника воды для расчета баланса.

Поля:

  • id — идентификатор источника.

  • field_id — ссылка на field.

  • field_zone_id — ссылка на field_zone (опционально для уровня поля).

  • source_type — тип источника (machine|drip_subsurface|rain).

  • source_ref — внешний идентификатор устройства/канала.

  • origin — происхождение (controller|sensor|external_weather_api).

  • confidence — доверие к источнику (0..1).

  • is_primary — признак primary-источника в пределах типа.

  • updated_at — время последнего обновления.

4. Связь с агрегатом field_water_balance#

  • field_water_balance.field_id -> field.id.

  • field_water_balance.field_zone_id -> field_zone.id.

  • доли по источникам (machine_mm, drip_mm, rain_mm) должны ссылаться на нормализованные water_source.

5. Инварианты#

  • field_zone.field_id всегда указывает на существующее field.

  • Для source_type=rain поддерживается primary/fallback политика D-008.

  • Все derived-значения в m3 вычисляются из primary-модели mm и площади (field/field_zone).