Модель данных#
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).