Hubungan antara Locations
dan Events
adalah contoh hubungan 1-ke-banyak. Ini berarti bahwa setiap lokasi individu dapat memiliki banyak peristiwa yang terkait dengannya. Jenis hubungan ini biasanya diimplementasikan dengan menambahkan kunci asing ke tabel 'banyak' (peristiwa) yang mereferensikan kunci utama tabel 'satu' (lokasi).
Hubungan antara 'Lokasi' dan 'Jenis' adalah contoh hubungan banyak-ke-banyak. Artinya suatu lokasi dapat memiliki banyak tipe dan suatu tipe dapat berhubungan dengan banyak lokasi. Jenis hubungan ini biasanya diimplementasikan dengan tabel tautan, yang berisi kunci asing untuk baris terkait. Tabel tautan biasanya memiliki kunci utama gabungan dari dua kunci asing, yang berarti bahwa satu lokasi tidak dapat ditautkan ke jenis 'bilah' dua kali.
Jadi, struktur tabel berikut mungkin cocok untuk Anda:
Location: ID (primary key), LocationName, ...
Events: ID (primary key), LocationID (foreign key), Date, Name, ...
LocationTypes: LocationID (fk), TypeID (fk)
Types: ID (pk), Name, ...
Untuk menanyakan informasi di beberapa tabel, Anda harus menggunakan gabungan. Untuk hubungan 1-ke-banyak, kueri berikut akan berfungsi:
SELECT
l.LocationName, e.Name, e.Date
FROM Location l
JOIN Events e ON l.ID = e.LocationID
Untuk hubungan banyak ke banyak, kueri berikut akan menggabungkan informasi.
SELECT
l.LocationName, t.Name as TypeName
FROM Location l
JOIN LocationTypes lt ON l.ID = lt.LocationID
JOIN Types t ON lt.TypeID = t.ID
Contoh-contoh ini hanya menunjukkan gabungan dalam standar, ada jenis gabungan lain yang mungkin lebih sesuai dengan kebutuhan Anda.