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_rain→Trueاگر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 (مستقل — کاتالوگ)