Sunday, September 28, 2014

memahami primary key dan foreign key

Dalam pembuatan table pada database sudah tidak asing lagi jika memerlukan primary key dan foreign key. Primary key merupakan field kunci atau field utama pada sebuah table yang memberikan suatu identitas data ditable tersebut, karena column pada table tersebut tidak dapat diisi dengan data yang sama. Foreign key adalah field relasi dari primary key sehingga dapat diganakan untuk membuat suatu relasi antar dua table atau lebih yang memiliki primary key maupun foreign key.

MYSQL merupakan salah satu database yang sering digunakan oleh developer aplikasi web. Dalam pembuatan table dalam database sering menggunakan primary key dan foreign key untuk membuat suatu relasi antar table. Secara teori saya masih sulit menjelaskan mungkin karena saya kurang dalam membaca buku, tetapi saya akan mencoba dengan beberapa hal yang saya coba menggunakan MYSQL.

Pertama kali saya membuat table dengan nama MD_KATEGORI_PAKAIAN.

CREATE TABLE MD_KATEGORI_PAKAIAN(
KD_KATEGORI_PAKAIAN VARCHAR(11) PRIMARY KEY,
NM_KATEGORI_PAKAIAN VARCHAR(12),
KET_KATEGORI_PAKAIAN TEXT) TYPE = INNODB;

Table yang saya buat menyertakan TYPE=INNODB, karena sebelumnya table yang saya buat tidak menyertakan TYPE=INNODB tidak dapat bekerja sesuai dengan keinginan saya. Kebanyakan database secara default jika membuat table dengan primary key dan foreign key sudah saling mengikat. Jika saya belum membuat data untuk primary key maka tidak dapat menambahkan data untuk foreign key, akan muncul error "Cannot add or update a child row: a foreign key constraint fails". 

Selanjutnya membuat table dengan dama D_PAKAIAN

CREATE TABLE D_PAKAIAN(
KD_DATA_PAKAIAN VARCHAR(11),
KD_KATEGORI_PAKAIAN VARCHAR(11),
UMUR VARCHAR(11),
MERK_PAKAIAN VARCHAR(50),
STOK_PAKAIAN INT(11),
KET_PAKAIAN TEXT,
HARGA INT(30),
IMG_KATEGORI_PAKAIAN LONGBLOB,
PRIMARY KEY (KD_DATA_PAKAIAN),
FOREIGN KEY (KD_KATEGORI_PAKAIAN) REFERENCES MD_KATEGORI_PAKAIAN(KD_KATEGORI_PAKAIAN) ON UPDATE CASCADE ON DELETE CASCADE) TYPE=INNODB;

table diatas menyertakan foreign key yang ON DELETE CASCADE , ON UPDATE CASCADE dan TYPE = INNODB. ON DELETE CASCADE berfungsi jika column data primary key dihapus maka data yang sama di foreign key secara otomatis juga akan terhapus. ON UPDATE CASCADE berfungsi jika data pada primary key di update maka data pada foreign key secara otomatis akan terupdate.

Hanya ini yang dapat saya sampaikan tentunya ada kesalahan jika kebetulan ada yang membaca dan menemukan kesalahan dalam pemahaman saya tolong dibenarkan dan saya sangat senang untuk memperbaikinya. Karena tulisan ini hanya sebagai pengingat saja. 

No comments:

Post a Comment