Files
Ai/TABLES.md
T
2026-03-21 23:50:36 +03:30

10 KiB

مستندات جداول پایگاه داده — CropLogic AI

این سند تمام جداول (مدل‌های Django) موجود در پروژه را به همراه توضیح ستون‌ها و روابط بین آن‌ها شرح می‌دهد.


فهرست جداول

اپ جدول توضیح کوتاه
location_data SoilLocation موقعیت جغرافیایی (lat/lon)
location_data SoilDepthData داده‌های خاک به تفکیک عمق
sensor_data SensorData آخرین خوانش سنسور برای یک موقعیت
sensor_data SensorDataHistory تاریخچه خوانش‌های سنسور
sensor_data SensorParameter تعریف پارامترهای سنسور
sensor_data ParameterUpdateLog لاگ تغییرات پارامترهای سنسور
weather WeatherParameter تعریف پارامترهای هواشناسی
weather WeatherForecast پیش‌بینی آب‌وهوای روزانه
plant Plant اطلاعات گیاهان
irrigation IrrigationMethod روش‌های آبیاری

اپ: location_data

جدول SoilLocation

موقعیت‌های جغرافیایی که داده‌های خاک و سنسور به آن‌ها متصل هستند.

ستون نوع توضیح
id PK (auto) شناسه اتوماتیک
latitude DecimalField (9,6) عرض جغرافیایی
longitude DecimalField (9,6) طول جغرافیایی
task_id CharField شناسه تسک Celery در حال پردازش
created_at DateTimeField زمان ایجاد
updated_at DateTimeField آخرین زمان به‌روزرسانی

محدودیت‌ها:

  • ترکیب (latitude, longitude) باید یکتا باشد.

روابط:

  • SoilDepthData.soil_location (یک به چند)
  • SensorData.location (یک به چند)
  • WeatherForecast.location (یک به چند)

جدول SoilDepthData

داده‌های خاک از API SoilGrids برای سه عمق مختلف، مرتبط با هر SoilLocation.

ستون نوع توضیح
id PK (auto) شناسه اتوماتیک
soil_location FK → SoilLocation موقعیت مکانی مرتبط
depth_label CharField عمق: 0-5cm / 5-15cm / 15-30cm
bdod FloatField چگالی ظاهری خاک (Bulk Density)
cec FloatField ظرفیت تبادل کاتیونی (CEC)
cfvo FloatField درصد حجمی سنگریزه
clay FloatField درصد رس
nitrogen FloatField نیتروژن کل
ocd FloatField تراکم کربن آلی
ocs FloatField ذخیره کربن آلی
phh2o FloatField pH خاک در آب
sand FloatField درصد شن
silt FloatField درصد سیلت
soc FloatField کربن آلی خاک (SOC)
wv0010 FloatField رطوبت حجمی در ۱۰ kPa
wv0033 FloatField ظرفیت زراعی — رطوبت در ۳۳ kPa
wv1500 FloatField نقطه پژمردگی — رطوبت در ۱۵۰۰ kPa
created_at DateTimeField زمان ایجاد

محدودیت‌ها:

  • ترکیب (soil_location, depth_label) باید یکتا باشد.

اپ: sensor_data

جدول SensorData

آخرین خوانش سنسور فیزیکی برای یک موقعیت. هنگام به‌روزرسانی، نسخه قبلی به SensorDataHistory منتقل می‌شود.

ستون نوع توضیح
uuid_sensor UUIDField (PK) شناسه یکتای سنسور
location FK → SoilLocation موقعیت مکانی (ستون DB: location_id)
soil_moisture FloatField رطوبت خاک
soil_temperature FloatField دمای خاک
soil_ph FloatField pH خاک
electrical_conductivity FloatField هدایت الکتریکی (EC)
nitrogen FloatField ازت (N)
phosphorus FloatField فسفر (P)
potassium FloatField پتاسیم (K)
plants M2M → Plant گیاهان مرتبط با این سنسور
created_at DateTimeField زمان ایجاد
updated_at DateTimeField آخرین زمان به‌روزرسانی

جدول SensorDataHistory

تاریخچه کامل خوانش‌های سنسور. هر بار که SensorData به‌روز می‌شود، نسخه قبلی اینجا ذخیره می‌شود.

ستون نوع توضیح
id PK (auto) شناسه اتوماتیک
uuid_sensor UUIDField شناسه سنسور اصلی
location_id IntegerField شناسه موقعیت مکانی
soil_moisture FloatField رطوبت خاک
soil_temperature FloatField دمای خاک
soil_ph FloatField pH خاک
electrical_conductivity FloatField هدایت الکتریکی
nitrogen FloatField ازت
phosphorus FloatField فسفر
potassium FloatField پتاسیم
recorded_at DateTimeField زمان ثبت در تاریخچه

نکته: این جدول FK مستقیم به SoilLocation ندارد تا در صورت حذف موقعیت، تاریخچه حفظ شود.


جدول SensorParameter

کاتالوگ پارامترهای قابل اندازه‌گیری توسط سنسورها.

ستون نوع توضیح
id PK (auto) شناسه اتوماتیک
code CharField (unique) کد یکتا (مثال: soil_moisture)
name_fa CharField نام فارسی پارامتر
unit CharField واحد اندازه‌گیری
created_at DateTimeField زمان ایجاد

جدول ParameterUpdateLog

لاگ تغییرات (افزودن یا ویرایش) پارامترهای سنسور.

ستون نوع توضیح
id PK (auto) شناسه اتوماتیک
parameter FK → SensorParameter پارامتر مرتبط
action CharField نوع عملیات: added یا modified
updated_at DateTimeField زمان ثبت لاگ

اپ: weather

جدول WeatherParameter

کاتالوگ پارامترهای هواشناسی تعریف‌شده در سیستم.

ستون نوع توضیح
id PK (auto) شناسه اتوماتیک
code CharField (unique) کد یکتا (مثال: temperature_max)
name_fa CharField نام فارسی پارامتر
unit CharField واحد اندازه‌گیری
created_at DateTimeField زمان ایجاد

جدول WeatherForecast

پیش‌بینی روزانه آب‌وهوا (تا ۷ روز آینده) برای هر موقعیت مکانی.

ستون نوع توضیح
id PK (auto) شناسه اتوماتیک
location FK → SoilLocation موقعیت مکانی مرتبط
forecast_date DateField تاریخ پیش‌بینی
temperature_min FloatField حداقل دمای هوا (°C)
temperature_max FloatField حداکثر دمای هوا (°C)
temperature_mean FloatField میانگین دمای هوا (°C)
precipitation FloatField مجموع بارش (mm)
precipitation_probability FloatField احتمال بارش (%)
humidity_mean FloatField میانگین رطوبت نسبی (%)
wind_speed_max FloatField حداکثر سرعت باد (km/h)
et0 FloatField تبخیر-تعرق مرجع ET₀ (mm/day)
weather_code IntegerField کد وضعیت آب‌وهوا (WMO)
fetched_at DateTimeField آخرین زمان واکشی از API
created_at DateTimeField زمان ایجاد

محدودیت‌ها:

  • ترکیب (location, forecast_date) باید یکتا باشد.

Property:

  • will_rainTrue اگر precipitation > 0

اپ: plant

جدول Plant

اطلاعات گیاهان شامل شرایط کاشت، نگهداری و برداشت.

ستون نوع توضیح
id PK (auto) شناسه اتوماتیک
name CharField (unique) نام گیاه
light CharField نور مورد نیاز
watering CharField نیاز آبیاری
soil CharField نوع خاک مناسب
temperature CharField دمای مناسب رشد
planting_season CharField فصل کاشت
harvest_time CharField زمان برداشت
spacing CharField فاصله کاشت
fertilizer CharField کود مناسب
created_at DateTimeField زمان ایجاد
updated_at DateTimeField آخرین زمان به‌روزرسانی

روابط:

  • SensorData.plants (M2M از طریق جدول واسط)

اپ: irrigation

جدول IrrigationMethod

مشخصات فنی روش‌های مختلف آبیاری.

ستون نوع توضیح
id PK (auto) شناسه اتوماتیک
name CharField (unique) نام روش آبیاری
category CharField دسته‌بندی (موضعی / تحت فشار / سطحی)
description TextField توضیحات کامل
water_efficiency_percent FloatField راندمان مصرف آب (%)
water_pressure_required CharField فشار مورد نیاز
flow_rate CharField دبی / میزان جریان آب
coverage_area CharField مساحت قابل پوشش
soil_type CharField نوع خاک مناسب
climate_suitability CharField اقلیم مناسب
created_at DateTimeField زمان ایجاد
updated_at DateTimeField آخرین زمان به‌روزرسانی

نمودار روابط (خلاصه)

SoilLocation
    ├── SoilDepthData        (1:N  —  depth_label: 0-5cm, 5-15cm, 15-30cm)
    ├── SensorData           (1:N  —  uuid_sensor PK)
    │       └── Plant        (M:N  —  جدول واسط)
    └── WeatherForecast      (1:N  —  یکتا per location+date)

SensorParameter
    └── ParameterUpdateLog   (1:N  —  action: added/modified)

Plant           (مستقل — از طریق M2M به SensorData متصل)
IrrigationMethod (مستقل — بدون FK)
WeatherParameter (مستقل — کاتالوگ)