Cara Membuat Foreign Key Di MySQL


Cara Membuat Foreign Key – Jika sering berkecimpung dalam dunia database, termasuk MySQL pastinya Anda sudah tidak asing dengan istilah foreign key dan primary key. Untuk informasi, primary key adalah istilah yang sering disebut dengan kunci utama pada field tertentu di dalam suatu tabel.

Tabel ini sendiri menjadi acuan untuk mendefinisikan suatu baris atau rows data. Sedangkan foreign key adalah atribut pada tabel yang menunjukkan hubungan ke tabel induknya.

Misalnya ada suatu database penjual dan terdapat field id_pembeli pada tabel pembeli yang menjadi primary key. Field ini bisa menjadi foreign key pada tabel transaksi. Demikian pula dengan field id_barang yang menjadi primary key pada tabel barang, namun juga bisa menjadi foreign key pada tabel transaksi.

Kita bisa membuat relasi dari ketiga tabel tersebut dengan menghubungkan antara tabel pembeli ke tabel transaksi dengan memakai field id_pembeli dan dari tabel transaksi ke tabel barang dengan menggunakan field id_barang.

Field yang Bisa Digunakan untuk Primary Key

Baca juga: Cara Membuat Database MySQL

Supaya tabel bisa direlasikan, maka kita harus mengetahui syarat apa saja yang harus dipenuhi suatu field yang akan dijadikan sebagai primary key. Berikut adalah beberapa syaratnya.

Field Harus Unik

Field bersifat unik dan tidak boleh ada data yang sama. Sebagai gambaran field nama tidak dapat digunakan sebagai primary key. Alasannya ada kemungkinan orang dengan nama yang sama. Field yang cocok dijadikan sebagai primary key adalah Nomor Induk Mahasiswa (NIM), Nomor Induk Kependudukan (NIK), kode pemesanan, kode barang dan lain sebagainya yang data satu dengan data lainnya tidak mungkin sama.

Field Harus Memiliki Nilai

Field yang akan dijadikan primary key harus ada nilainya (not null) atau tidak boleh kosong. Sebab seperti yang sudah disinggung di atas, primary key menjadi acuan untuk field-field yang lain. Sehingga field yang dijadikan primary key harus ada nilainya.

Umumnya saat membuat tabel pada field yang ingin dijadikan sebagai primary key, kita perlu menambahkan atribut not null.

Tipe Data Bukan BLOB

Ketentuan lain untuk membuat suatu field menjadi primary key adalah tipe datanya. Tipe data yang dipakai tidak boleh berjenis Binary Large Object (BLOB). Tipe data yang dianjurkan adalah Char atau Integer.

Bersifat Independen

FIeld yang akan dijadikan primary key harus bersifat independen. Artinya field tersebut bisa berdiri sendiri tanpa ada intervensi dari field atau kolom tabel lain.

Syarat Membuat Foreign Key

Jika ingin membuat foreign key pada MySQL, kita juga perlu mengetahui apa saja yang menjadi syarat dalam menjadikan suatu field sebagai foreign key. Berikut adalah beberapa ketentuan dalam membuat foreign key.

Engine Penyimpanan InnoDB

Ketika ingin membuat foreign key, kita perlu memastikan bahwa engine penyimpanan yang dipakai pada tabel adalah InnoDB. Sebab sejauh ini hanya engine tersebut yang mendukung fitur foreign key. Lalu bagaimana cara memastikan engine tersebut?

Kita bisa mengeceknya dengan cara klik database yang diinginkan. Lalu pada daftar tabel yang muncul cermati bagian Type. Contohnya adalah sebagai berikut.

Pastikan Field yang Terlibat Dijadikan Index atau Primary Key

Selain ketentuan di atas, kita juga harus memastikan bahwa field yang dibuat menjadi foreign key (pada child table) ataupun field yang akan dijadikan referensi (pada parent table) harus dijadikan sebagai index atau primary key.

Untuk memeriksa apakah field sudah ditambahkan sebagai index, ada dua cara tergantung versi phpMyAdmin yang digunakan. Untuk phpMyAdmin versi 4.4 ke atas terdapat ikon kunci berwarna abu-abu di sebelah kanan nama field. Sedangkan untuk versi 4.0 ke bawah, kta perlu menekan link Indexes yang terdapat di bagian bawah daftar tabel.

Nilai pada Field yang Akan Dijadikan Foreign Key Harus Ada pada Field Referensi

Selain itu syarat lain untuk membuat foreign key adalah memastikan bahwa seluruh nilai pada field yang akan dijadikan foreign key (child table) harus ada pada field referensi pada parent table. Misalnya kita membuat foreign key pada field id_produk yang terdapat pada tabel sales, dengan referensi field id_produk yang ada pada tabel produk.

Contohnya row pertama field id_produk pada tabel sales berisi nilai 1, row kedua 2 dan row ketiga 3. Maka field id_produk pada tabel produk juga harus memuat tiga nilai tersebut.

Baca juga: Normalisasi Database

Membuat dan Mengubah Storage Engine Menjadi InnoDB

Apabila engine table pada database Anda belum InnoDB, Anda bisa mengubahnya dengan beberapa tahap. Berikut adalah tahap mengubah atau membuat storage engine menjadi InnoDB:

  • Jika tabel sudah terbentuk, klik tabel yang diinginkan dan pilih tab Operations.
  • Di bagian Table Options Anda bisa melihat pilihan Storage Engine. Silakan pilih InnoDB.
  • Saat membuat tabel baru, pilih InnoDB pada pilihan Storage Engine yang ada di sisi bawah.

Cara Membuat Foreign Key

Dalam membuat foreign key, ada beberapa langkah yang perlu kita lakukan. Lebih lengkapnya berikut akan dijelaskan satu per satu.

Skema dan Hubungan Antar Variabel

Misalnya kita sudah memiliki database online_shop, kemudian di dalam database tersebut memuat tabel sales dengan field id_produk dan id_pelanggan. Lebih detailnya field id_produk adalah referensi dari field id_produk yang ada di tabel produk.

Sedangkan id_pelanggan adalah referensi dari field id_pelanggan pada tabel pelanggan. Struktur tabel dan hubungan antar tabel bisa dilihat pada gambar di bawah ini:

Masuk Halaman Relation View

Berikutnya kita perlu masuk ke halaman Relation View pada tabel sales. Caranya adalah sebagai berikut:

  • Pilih tabel sales
  • Pilih tab Structure
  • Klik link Relation View

Perlu dicatat bahwa letak link Relation View berbeda-beda. Tergantung versi phpMyAdmin yang Anda gunakan. Sebagai contoh berikut letak link Relation View pada phpMyAdmin 4.5:

Pengisian Parameter

Sesudah masuk ke halaman Relation View, berikutnya kita perlu mengisi parameter. Pengisian parameter untuk pembuatan foreign key pada field id_produk dan id_pelanggan. Contohnya adalah sebagai berikut:

Keterangan:

  1. Isi nama constraint, dan pilih nama yang mencerminkan relasinya. Sebagai contoh nama constraint adalah fk_sales_produk atau foreign key field pada tabel sales ke field tabel produk.
  2. Pilih field yang ingin dibuat menjadi foreign key.
  3. Pilih database di mana tabel yang memuat field referensi berada.
  4. Berikutnya pilih tabel dimana field referensi berada.
  5. Pada langkah ini pilih field referensi yang akan dituju.
  6. Pada opsi ON DELETE, pilih CASCADE. Artinya jika kita menghapus salah satu row pada parent table (produk), maka row pada child table (sales) dengan id_produk yang sama juga akan terhapus.
  7. Sedangkan pada menu ON UPDATE juga pilih CASCADE. Artinya apabila kita melakukan update nilai field id_pelanggan pada tabel pelanggan, maka id_pelanggan yang sama pada tabel sales juga akan diperbarui.
  8. Setelah itu klik save. Jika sukses akan muncul pesan bahwa query berhasil dieksekusi.


Loading...

Leave a Comment