Detail Skema Database & Alur Data

Penjelasan Tabel Utama

Database MySQL dirancang untuk menyimpan semua data operasional dan historis dari sistem. Berikut adalah penjelasan untuk tabel-tabel utamanya:

Tabel: `sensor_data`

Tabel ini adalah jantung dari penyimpanan data monitoring. Setiap baris mewakili satu kali pembacaan dari semua sensor pada satu perangkat.

Nama KolomTipe DataDeskripsi
`device_id`VARCHARID unik dari perangkat ESP32 yang mengirim data.
`timestamp`TIMESTAMPWaktu kapan data ini dicatat oleh server.
`temperature`FLOATNilai suhu udara dalam Celcius.
`humidity`FLOATNilai kelembaban udara dalam %.
`soil_moisture`FLOATNilai kelembaban tanah dalam %.

Tabel: `pump_activity`

Mencatat setiap kali pompa diaktifkan, baik secara otomatis oleh sistem maupun manual oleh pengguna.

Nama KolomTipe DataDeskripsi
`device_id`VARCHARID perangkat yang pompanya aktif.
`trigger_reason`VARCHARAlasan mengapa pompa diaktifkan (misal: "High Temperature").
`duration_ms`INTLama waktu pompa aktif dalam milidetik.
`completed`BOOLEANStatus apakah aksi sudah selesai.

Tabel: `alerts`

Menyimpan semua notifikasi peringatan atau darurat yang dihasilkan oleh sistem.

Nama KolomTipe DataDeskripsi
`device_id`VARCHARID perangkat yang menghasilkan peringatan.
`alert_message`VARCHARPesan peringatan yang dikirim.
`alert_type`ENUMTipe peringatan (misal: 'EMERGENCY', 'WARNING').
`sensor_data`JSONData sensor saat peringatan terjadi, disimpan sebagai JSON.

Diagram Relasi Entitas (ERD)

Diagram berikut mengilustrasikan hubungan antar tabel utama dalam database.

[device_status] 1--* [sensor_data]
    |               |
    `--* [pump_activity]
    |               |
    `--* [alerts]
    |               |
    `--* [device_heartbeat]
                

Keterangan: Satu baris di `device_status` (mewakili satu perangkat) dapat memiliki banyak (`*`) catatan di tabel `sensor_data`, `pump_activity`, dan `alerts`.