Database relationships adalah asosiasi antar tabel yang dibuat menggunakan pernyataan bergabung untuk mengambil data.Dalam membuat relasi antar tabel,akan terdapat primary key dan foreign key. Anda dapat dengan mudah melihat bahawa setiap tabel saling berhubungan satu sama lain.
- Primary key adalah suatu nilai dalam basis data yang digunakan untuk mengidentifikasi suatu baris dalam tabel.Nilai dari primary key adalah unik
- Foreign key adalah atribut dalam tabel yang berujuk ke primary key
Fungsi dari primary key adalah identitas untuk membedakan antar record pada tabel,sedangkan fungsi dari foreign key adalah sebagai tanda hubungan antar tabel.Terdapat 3 jenis relasi antar tabel,yaitu:
- One to one
- One to many
- Many to many
Meskipun berbeda,mereka diwakili dalam dengan cara yang sama di database dan itulah garis antara dua tebal.Jadi, apa yang berbeda? Saya akan menjelaskan masing-masing jenis hubungan ini secara terpisah.Lalu bagaimana cara memilih salah satu?,cara paling simpel dalam memilih salah satu dari 3 jenis relasi yang berbeda adalah,dengan cara mengucapkannya,jika kata “banyak” terucap sekali,maka itu one-to-many,jika “banyak” dua kali,maka itu many-to-many,dan jika tidak terucap kata “banyak” maka itu one-to-one.
One to many
Yang pertama adalah one to many,kenapa ini di pertama?,karena tipe ini paling umum digunakan,mari kita lihat ke contoh di kehidupan nyata. Bayangkan sebuah aplikasi e-commerce,kita ingin menyimpan list cart/keranjang belanja user.
Karena itu kita buat relasi dari tabel user ke tabel cart dengan primary key di tabel user berupa id dan foreign key di tabel chart id_user,kenapa ini bisa menjadi contoh one-to-many?,karena logikanya satu user bisa memiliki banyak chart.Lalu bagaimana caranya melakukan query databasenya?,kita bisa menggunakan JOIN,baik inner,left,right sesuai kebutuhan.
many to many
Yang kedua adalah many-to-many,sebagai contoh kita ingin menyimpan data,telepon antara pegawai(support) dan customer.maka logikanya. Satu pegawai bisa ditelepon banyak customer,dan juga satu customer bisa menelepon banyak pegawai.
Nah,kita bisa lihat bahwa,ada dua kata “banyak”,ini merupakan ciri bahwa ini harus diselesaikan dengan relasi many-to-many.Relasi many-to-many akan diimplementasikan dengan menambah tabel baru dari relasi one-to-many dari kedua entitas.
one to one
Yang terakhir adalah one-to-one, sebagai contoh kita ingin menyimpan data user, setiap user akan memiliki satu role,mari kita cek apakah ini benar-benar relasi one-to-one, saya memberi aturan yaitu satu user hanya boleh memiliki satu role,dan satu role hanya boleh dimiliki oleh satu user. Disini sama sekali tidak ada kata “banyak”, berarti ini bukan relasi one-to-many atau many-to-many. Sebagai catatan relasi one-to-one juga diimplementasikan seperti one-to-many, tetapi dengan syarat tambahan yaitu foreign key juga merupakan primary key.