Cara menggunakan foreign key mysql workbench

Untuk mengenerate menjadi file .sql pilih File–>Export–>Forward Engineer SQL Create Script .Dan seperti ini hasilnya

SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';

CREATE SCHEMA IF NOT EXISTS `mydb` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci ;
USE `mydb` ;

-- -----------------------------------------------------
-- Table `mydb`.`Pelanggan`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `mydb`.`Pelanggan` (
  `idPelanggan` INT NULL ,
  `Nama` VARCHAR(25) NOT NULL ,
  `Alamat` VARCHAR(35) NOT NULL ,
  `NoTelp` INT NULL ,
  PRIMARY KEY (`idPelanggan`) )
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `mydb`.`Pesan`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `mydb`.`Pesan` (
  `idPesan` INT NULL ,
  `TglPesan` DATE NOT NULL ,
  `Pelanggan_idPelanggan` INT NOT NULL ,
  PRIMARY KEY (`idPesan`) ,
  INDEX `fk_Pesan_Pelanggan_idx` (`Pelanggan_idPelanggan` ASC) ,
  CONSTRAINT `fk_Pesan_Pelanggan`
    FOREIGN KEY (`Pelanggan_idPelanggan` )
    REFERENCES `mydb`.`Pelanggan` (`idPelanggan` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `mydb`.`DaftarMenu`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `mydb`.`DaftarMenu` (
  `idMenu` INT NULL ,
  `Nama` VARCHAR(25) NOT NULL ,
  `Jenis` VARCHAR(12) NOT NULL ,
  `Harga` INT NOT NULL ,
  PRIMARY KEY (`idMenu`) )
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `mydb`.`Pemesanan`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `mydb`.`Pemesanan` (
  `idMenu` INT NOT NULL ,
  `idPesan` INT NOT NULL ,
  `JumlahPesan` INT NOT NULL ,
  `TotalHarga` INT NOT NULL ,
  PRIMARY KEY (`idMenu`, `idPesan`) ,
  INDEX `fk_DaftarMenu_has_Pesan_Pesan1_idx` (`idPesan` ASC) ,
  INDEX `fk_DaftarMenu_has_Pesan_DaftarMenu1_idx` (`idMenu` ASC) ,
  CONSTRAINT `fk_DaftarMenu_has_Pesan_DaftarMenu1`
    FOREIGN KEY (`idMenu` )
    REFERENCES `mydb`.`DaftarMenu` (`idMenu` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_DaftarMenu_has_Pesan_Pesan1`
    FOREIGN KEY (`idPesan` )
    REFERENCES `mydb`.`Pesan` (`idPesan` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;

SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;

Sebenarnya masih banyak feature lainnya yang menarik,tapi pada posting kali ini saya baru memberikan beberapa saja.

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 mysql workbench

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.

Cara menambahkan Primary key dan Foreign key pada MySQL

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.

Bagaimana penggunaan 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.

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..

Kapan bisa menggunakan foreign key?

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.

MySQL Workbench buat apa?

MySQL Workbench adalah sebuah perangkat aplikasi berbentuk visual yang dipergunakan untuk mengelola basis data. Perangkat aplikasi ini biasa digunakan oleh seorang arsitek basis data, pengembang basis data, serta administator basis data.