77 lines
2.1 KiB
Markdown
77 lines
2.1 KiB
Markdown
# ERD Summary - WebGIS
|
|
|
|
Dokumen ini merangkum skema database yang dipakai aplikasi pada `sql/migrations/001_init_schema.sql` dan `webgis.sql`.
|
|
|
|
## Tabel Utama
|
|
|
|
### `users`
|
|
|
|
Menyimpan akun pengguna aplikasi.
|
|
|
|
Kolom penting:
|
|
- `email`
|
|
- `password_hash`
|
|
- `name`
|
|
- `organization`
|
|
- `org_address`
|
|
- `org_phone`
|
|
- `org_proof_path`
|
|
- `role` dengan nilai `manager` atau `admin`
|
|
- `status` dengan nilai `pending`, `active`, `rejected`, atau `pending_verification`
|
|
- `email_verified`
|
|
- field verifikasi email seperti `email_verification_token_hash`, `email_verification_expires`, dan timestamp terkait
|
|
- `approved_by` dan `approved_at`
|
|
|
|
### `lokasi`
|
|
|
|
Menyimpan seluruh marker yang tampil di peta.
|
|
|
|
Kolom penting:
|
|
- `nama`
|
|
- `no_telp`
|
|
- `latitude` dan `longitude`
|
|
- `alamat`
|
|
- `jenis`
|
|
- field khusus rumah seperti `nama_kk`, `rumah_status`, `members`, `monthly_income`
|
|
- field bantuan seperti `assisted`, `last_assisted_at`, `assistance_notes`, `sumber_bantuan`, `bentuk_bantuan`
|
|
- `photo_path`
|
|
- `created_by`
|
|
|
|
### `bantuan_detail`
|
|
|
|
Menyimpan detail histori bantuan per lokasi.
|
|
|
|
Kolom penting:
|
|
- `lokasi_id`
|
|
- `tanggal_bantuan`
|
|
- `pemberi_bantuan`
|
|
- `catatan`
|
|
- `pemberi_lokasi_id`
|
|
- `jumlah`
|
|
|
|
### `migrations`
|
|
|
|
Menyimpan catatan migration yang sudah dijalankan.
|
|
|
|
## Relasi
|
|
|
|
- `users.approved_by` mengarah ke `users.id`
|
|
- `lokasi.created_by` mengarah ke `users.id`
|
|
- `lokasi.sumber_bantuan` mengarah ke `lokasi.id`
|
|
- `bantuan_detail.lokasi_id` mengarah ke `lokasi.id`
|
|
- `bantuan_detail.pemberi_lokasi_id` mengarah ke `lokasi.id`
|
|
|
|
## Alur Data
|
|
|
|
1. Guest melihat data publik di peta dan tabel.
|
|
2. Pengelola mendaftar, menerima kode verifikasi email, lalu akun dibuat dalam status menunggu persetujuan admin.
|
|
3. Admin menyetujui akun pengelola.
|
|
4. Pengelola yang disetujui dapat menambah dan mengubah data miliknya.
|
|
5. Admin bisa mengelola seluruh data.
|
|
|
|
## Catatan Implementasi
|
|
|
|
- Database yang dipakai adalah MySQL/MariaDB.
|
|
- Semua relasi foreign key dibuat agar data tetap konsisten.
|
|
- Kolom bantuan dan verifikasi email disimpan langsung di tabel utama supaya alurnya sederhana untuk pengembangan berikutnya.
|