Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Menerapkan tabel asosiasi

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP:Cari database mysql menggunakan beberapa daftar dropdown pilih?

  2. MySQL mendefinisikan kolom sebagai UNIK dengan AUTO_INCREMENT alih-alih sebagai Kunci Utama

  3. Cara menggabungkan dua kueri SQL dengan klausa ORDER BY yang berbeda

  4. Hapus sejumlah besar data dari tabel besar

  5. Mengoptimalkan kueri MySQL untuk pencarian rentang bilangan bulat