Relasi Database
Di dunia nyata, data jarang berdiri sendiri. Biasanya data saling berhubungan, misalnya:
- Satu Kategori memiliki banyak Produk.
- Satu User memiliki banyak Pesanan.
Ini disebut relasi One-to-Many (Satu-ke-Banyak), relasi yang paling sering digunakan saat mendesain database.
1. Konsep Foreign Key
Foreign Key (Kunci Asing) adalah kolom di satu tabel yang merujuk ke Primary Key (Kunci Utama) di tabel lain.
Tabel kategori:
Tabel produk:
Di sini, kategori_id di tabel produk merujuk ke id di tabel kategori. Dengan menyimpan angka 1 saja, kita tahu bahwa Laptop adalah Elektronik, tanpa perlu menulis kata "Elektronik" berulang kali di tabel produk.
2. Membuat Tabel Berelasi (SQL)
Apa itu ON DELETE SET NULL?
Jika kategori "Elektronik" dihapus dari database, produk "Laptop" tidak ikut terhapus, melainkan kategori_id-nya secara otomatis menjadi NULL (Kosong).
Pilihan lainnya adalah ON DELETE CASCADE (Jika kategori dihapus, SEMUA produk di dalam kategori tersebut ikut terhapus secara otomatis! Hati-hati menggunakannya).
3. Menampilkan Data Berelasi (JOIN)
Untuk menampilkan produk beserta nama kategorinya di halaman web, kita menggunakan perintah JOIN yang sudah dipelajari di bab SQL Lanjutan.
4. Form Tambah Data Berelasi (Dropdown)
Saat membuat form untuk menambah produk baru, kita tidak menyuruh user mengetik angka ID kategori (1, 2, 3), melainkan memilih dari Dropdown menu (<select>).
File tambah-produk.php:
Penjelasan:
- User melihat teks yang ramah (misal: "Elektronik") di dropdown.
- Namun, atribut
value="<?= $kat['id'] ?>"memastikan bahwa ketika form dikirim (submit), yang dikirim ke PHP adalah angka ID-nya (misal:1). - Di file
simpan-produk.php, kamu tinggal melakukan INSERT seperti biasa menggunakan$_POST['kategori_id'].
Dengan memahami relasi database, kamu sudah siap membangun sistem yang lebih kompleks seperti E-Commerce atau Blog Multi-Kategori!