Cara menggunakan foreign key php

Skip to content

Assalamu’alaikum sahabat,

Senang sekali bisa kembali menyapa sahabat semua di blog ini, terlebih untuk share suatu ilmu yang Insyaa Allah bermanfaat buat kita semua.

Kali ini kita akan membuat Foreign Key pada salah satu field table suatu database MySQL atau MariaDB. Jadi, field Foreign key pada table ini akan berelasi dengan field Primary Key pada table lain dalam satu database.

Oiya, tutorial ini sengaja saya masukkan kategori Yii yaaa.. 🙂 . Karena, disamping tidak ada kategori MySQL atau MariaDB atau Database, Tutorial ini juga sangat diperlukan untuk develop aplikasi Yii2 menggunakan module Gii. 

Persiapan :

  • Pastikan table yang akan kita gunakan ber-type InnoDB
  • Pastikan type dan panjang data pada field calon foreign key sama dengan field primary key tujuan
  • Pastikan data masih kosong. atau bila field calon foreign key ada isinya, pastikan value data tersebut ada di field primary key tujuan.

Cara menggunakan foreign key php

Struktur table ‘category’ yang akan kita gunakan adalah seperti gambar dibawah. Field yang akan kita jadikan foreign key adalah field ‘created_by’ (int(11)) yang akan berelasi dengan table employee, field ‘id’ (primary key – int(11)).

Cara menggunakan foreign key php

Langkah 1 : Membuat index

Buka structure table category, lalu klik ‘index’ pada field created_by. Maka field created_by akan akan menjadi index dan masuk list indexes dibawah.

Cara menggunakan foreign key php

Langkah 2 : Menjadikan foreign key

Klik ‘Relation view’ dibawah struktur tabel

Cara menggunakan foreign key php

Pada field created_by, Isilah kolom ‘Foreign key constraint’ dengan field id (primary key) pada table employee. Lalu pada kolom constraint name isi dengan nama yang menggambarkan relasi. Sedangkan pada ON DELETE dan ON UPDATE diisi CASCADE.

Cara menggunakan foreign key php

Klik SAVE!

Selesai.

Post navigation

Kelasprogrammer.com – Halo Sahabat Programmer, kali ini saya akan berbagi bagaimana cara membuat primary key dan juga foreign key pada MySQL. Mungkin buat kalian yang sudah lama dalam dunia pemrograman yang bekerja menggunakan database pasti sudah tidak asing lagi dengan kedua istilah tersebut. Primary key merupakan istilah yang sering kita sebut sebagai kunci utama pada field tertentu didalam sebuah tabel yang menjadi acuan yan dapat dipakai untuk mendefinisikan suatu baris (rows) data. Sedangkan foreign key merupakan suatu atribut pada tabel yang menunjukan relasi (hubungan) ke tabel induknya.

Contohnya field id_pembeli pada tabel pembeli yang merupakan kunci utama (primary key) dapat menjadi kunci tamu (foreign key) pada tabel Transaksi. Bgitu juga field id_barang sebagai kunci utama pada tabel barang dapat menjadi kunci tamu pada tabel transaksi.

Baca juga : Cara membuat database mysql

Cara menggunakan foreign key php

Nantinya kita dapat membuat relasi dari ketiga tabel tersebut dengan menghubungkan antara tabel pembeli ke tabel transaksi dengan menggunakn field id_pembeli dan dari tabel transaksi ke tabel barang menggunakan field id_barang.

Field yang dapat digunakan untuk primary key

Agar sebuah tabel dapat direlasikan maka penting untuk memahami syarat wajib yang harus dipenuhi pada suatu field yang ingin dijadikan sebagai primary key.

  1. Field harus bersifat unik, tidak boleh ada data yang sama (duplikasi). Contoh field nama misalnya tidak dapat dijadikan primary key karena bisa jadi ada nama orang yang sama. Field yang cocok untuk dijadikan primary key misalnya NIM (nomor induk mahasiswa), NIK (Nomor nduk kependudukan), kode_barang, kode_pemesanan dan lainnya.
  2. Field yang ingin dijadikan primary key wajib harus ada nilainya (Not null) atau tidak boleh kosong. Alasannya karena primary key akan menjadi acuan untuk field-field yang lainnya, sehingga field tersebut wajib harus ada nilainya. Biasanya saat kita membuat tabel pada field yang ingin dijadikan sebagai primary key akan kita tambahkan atribut not null.
  3. Tipe data yang digunakan tidak boleh bertipe BLOB (Binary Large Object), Tipe data yang disarankan sebaiknya Integer atau Char.
  4. Field bersifat independent yang dapat berdiri sendiri tanpa ada intervensi dari field atau kolom pada tabel lain.

Disini saya akan memberikan dua cara untuk membuat primary key dan foreign key pada mysql. Cara yang pertama adalah ketika kita membuat tabel baru, dan cara yang kedua adalah untuk tabel sudah kita buat, jadi kita langsung tinggal set field yang ingin dijadikan primary key pada tabel tersebut.

Artikel Lainnya : Cara membuat tabel di phpMyAdmin

1. Membuat Primary dan foreign key saat membuat tabel baru

Berdasarkan desain tabel diatas kita coba belajar untuk menambahkan primary key pada tabel pembeli dan tabel barang.

Kita akan membuat tabel baru dengan nama pembeli, barang dan transaksi. Masing-masing tabel tersebut, langsung dapat kita tentukan field yang akan dijadikan primary key.

create table pembeli (
id_pembeli int not null auto_increment primary key,
nama_pembeli varchar(30) not null,
jk char(1),
no_telp char(14),
alamat varchar(50)
);
create table barang (
id_barang int not null auto_increment primary key,
nama_barang varchar(20) not null,
harga int,
stok int
);

Perhatikan pada perintah query diatas, kita membuat dua tabel dengan nama pembeli dan barang pada field id_pembeli dan id_barang, kita menggunakan atribut not null, yang artinya kedua field tersebut wajib diisi. Selain itu juga saya menggunakan auto_increment untuk membuat nilai pada kedua field tersebut akan terisi secara otomatis oleh sistem.

Mengapa kita perlu menggunakan auto_increment pada primary key ? Menurut saya agar untuk menghindari terjadinya duplikasi row. Namun penggunaan auto_increment ini hanya untuk field dengan tipe data intger saja.

create table transaksi (
id_transaksi int not null auto_increment primary key,
id_barang int,
id_pembeli int,
tanggal date,
keterangan varchar(100),
CONSTRAINT id_barang FOREIGN KEY (id_barang) REFERENCES barang (id_barang),
CONSTRAINT id_pembeli FOREIGN KEY (id_pembeli) REFERENCES pembeli (id_pembeli)
);

Perintah query diatas untuk membuat tabel transaksi. dengan membuat relasi pada tabel barang dan pembeli. Field yang dijadikan foreign key adalah field id_barang dan id_pembeli.

Baca juga : Perintah dasar SQL

2. Membuat Primary dan foreign key pada Tabel yang sudah dibuat

Kita juga dapat membuat primary key pada tabel yang sudah pernah dibuat sebelumnya. Kita akan gunakan dengan perintah ALTER TABLE.

Format Dasar:

ALTER TABLE nama_tabel
ADD PRIMARY KEY(nama_field);

Contoh:

ALTER TABLE barang
ADD PRIMARY KEY(id_barang);

Menghapus Primary Key

Untuk menghapus primary key pada suatu tabel, gunakan perintah sql berikut:

ALTER TABLE nama_tabel
DROP PRIMARY KEY;

Contoh:

ALTER TABLE barang
DROP PRIMARY KEY;

Langkah langkah membuat foreign key?

Cara Membuat Foreign Key di PHPMyAdmin.
Pertama kamu haru membuka tabel yang ingin kamu tambahkan foreign key tersebut dan buka tab 'Structure'. Kamu akan melihat sub menu 'Relation View'..
Pilih kolom yang menampung kunci asing serta tabel yang akan kamu referensikan dengan foreign key tersebut..

Dimana letak foreign key?

Foreign Key adalah Satu attribute atau kolom yang terdapat pada tabel anak. Atribut atau kolom ini merupakan primary di kolom induk. Seperti contoh di atas id_barang akan menjadi foreign key di tabel penjualan.

Kapan bisa menggunakan foreign key?

Foreign Key digunakan untuk menandai suatu tabel terhubung dengan tabel lain dalam konteks tabel parent dan child. Sebuah tabel dikatakan child bila memiliki suatu field yang merupakan reference terhadap key di tabel parent. Hal ini digunakan untuk menjaga konsistensi dan keterkaitan antar tabel.

Kapan primary key dan foreign key digunakan dan untuk apa?

Secara umum, foreign key biasa digunakan sebagai penanda hubungan antar tabel. Tabel pertama memiliki peran utama sehingga disebut sebagai primary key di dalamnya, dan tabel kedua merupakan foreign key yang biasa disebut dengan kunci asing.