
Awalnya Semua Terlihat Sederhanaβ¦ Sampai Client Minta Tambahan π
Waktu pertama kali bikin ERD, saya pikir: βAh, gampang. Tinggal bikin tabel, kasih relasi, selesai.β
Tapi ternyata⦠dua bulan kemudian client minta fitur baru, dan struktur database saya langsung berantakan.
Dari situ saya belajar: ERD yang baik itu harus siap berkembang sejak awal.
Dan berikut 3 tips yang selalu saya pegang dari pengalaman proyek nyata.
1. Mulai dari Use Case, Bukan dari Tabel π
Banyak orang langsung buka draw.io atau dbdiagram.io buat bikin tabel.
Padahal, sebelum itu, kita harus paham:
- Siapa yang akan pakai sistem?
- Data apa yang akan mereka masukkan?
- Bagaimana alur data berpindah?
π‘ Contoh: Di proyek plantation monitoring, saya mulai dari alur kerja lapangan β baru terjemahkan jadi tabel users, plantations, reports, dll.
π Kesalahan umum: Mulai dari tabel user & produk, padahal alurnya belum jelas β ujungnya banyak tabel yang nggak kepakai.
2. Gunakan Normalisasi Secukupnya βοΈ
Normalisasi itu penting biar data nggak redundan.
Tapi, terlalu normalisasi bisa bikin query jadi ribet & lambat.
- Normalisasi β Untuk data yang sering di-update.
- Denormalisasi β Untuk data yang jarang berubah tapi sering di-query.
π‘ Contoh: Di sistem e-commerce, data harga produk jarang berubah β bisa disimpan langsung di tabel products daripada dipisah ke tabel lain.
π Tips pribadi: Saya biasanya berhenti di 3rd Normal Form (3NF) kecuali ada kebutuhan khusus.
3. Rencanakan untuk Skalabilitas Sejak Awal π
ERD yang skalabel harus mempertimbangkan:
- Primary key & indexing β Pastikan query tetap cepat meski data jutaan.
- Foreign key β Jaga integritas data.
- Relasi Many-to-Many β Selalu gunakan tabel pivot (junction table).
- Soft delete β Gunakan
deleted_atuntuk menghindari kehilangan data permanen.
π‘ Contoh: Di sistem inventory, saya selalu bikin tabel transactions terpisah dari stock untuk memudahkan histori & audit.
Intinya
ERD yang baik itu:
- Dibuat berdasarkan use case.
- Normalisasi secukupnya.
- Dirancang untuk tumbuh.
Dari pengalaman, desain ERD yang skalabel bikin kita hemat waktu saat proyek berkembang.
Karena sekali database kamu kacau, perbaikannya bisa makan waktu berhari-hari bahkan berminggu-minggu. π
Kalau kamu punya tips lain soal desain ERD, tulis di komentar. Siapa tahu bisa jadi pelajaran berharga buat yang lain.