MySQL tidak tahu, juga tidak perlu tahu apakah suatu hubungan 1-1, atau 1-banyak.
Tidak ada SQL yang mendukung hubungan banyak-banyak, semua memerlukan tabel perantara yang membagi hubungan banyak-banyak menjadi 2 pisahkan 1-banyak.
Perbedaannya terletak pada logika yang mengontrol hubungan, yaitu dalam kode yang Anda tulis.
Hubungan 1-1 dipertahankan dengan membuat tabel berbagi kunci utama (PK) yang sama.
Dengan tabel sekunder mendeklarasikan bahwa PK sebagai kunci asing menunjuk ke tabel PK lainnya.
Table chinese_mother (
id integer primary key,
name....
Table chinese_child (
id integer primary key,
name ....
....,
foreign key (id) references chinese_mother.id
Arah hubungan 1 -> many
vs many <- 1
ditentukan oleh lokasi bidang tautan.
Biasanya setiap tabel memiliki id
yang unik dan bidang tautan disebut tablename_id
.
Tabel yang memiliki field link di dalamnya adalah many
sisi hubungan, tabel lainnya ada di 1
samping.
Table user
id: primary key
name......
.....
Table location
id: primary key
user_id foreign key references (user.id)
x
y
.......
Dengan menempatkan bidang tautan di location
tabel, Anda memaksa sesuatu sehingga lokasi hanya dapat memiliki 1 pengguna. Namun pengguna dapat memiliki banyak lokasi.