phpMyAdmin
 sql >> Teknologi Basis Data >  >> Database Tools >> phpMyAdmin

Bagaimana cara mengatur kunci asing yang bergantung pada hubungan dua tabel lainnya?

Saya tidak menggunakan phpmyadmin, tetapi saya akan mulai dengan

  • batasan unik pada subject.name,
  • batasan unik pada pasangan {teachers.name, teacher.subject_id},
  • batasan unik di {events.venue, events.subject_id, events.teacher_id},
  • batasan unik pada pasangan {teachers.id, teacher.subject_id}.

Tiga yang pertama berkaitan dengan identitas; yang terakhir memungkinkan Anda menargetkan {teachers.id, teacher.subject_id} dengan batasan kunci asing.

Dalam kasus umum, nama orang tidak unik. Jadi Anda bisa memiliki dua guru dengan nama yang sama yang mengajar mata pelajaran yang sama. Cara Anda menangani masalah semacam itu bergantung pada aplikasi.

Kemudian kunci asing

  • dari teacher.subject_id ke subject.id, dan
  • dari {events.teacher_id, events.subject_id} hingga {teachers.id, teacher.subject_id}

Itu setidaknya akan memberi Anda kesalahan jika Anda mencoba memasukkan ke dalam acara seorang guru dengan mata pelajaran yang salah.

Anda perlu menggunakan mesin INNODB untuk menegakkan batasan kunci asing. Mesin lain akan menguraikannya, tetapi mengabaikannya.

Klausa FOREIGN KEY dan REFERENCES didukung oleh mesin InnoDBstorage, yang mengimplementasikan ADD [CONSTRAINT [symbol]] FOREIGN KEY[index_name] (...) REFERENCES ... (...). Lihat Bagian 14.6.6, “Kendala Utama InnoDB dan ASING”. Untuk mesin penyimpanan lain, klausa diurai tetapi diabaikan.




  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. Bagaimana cara menginstal phpMyadmin di Centos 6.8 dengan php 5.5

  2. Pertanyaan Batas Waktu Mysql phpMyadmin

  3. Bagaimana cara menyembunyikan database information_schema dari phpmyadmin

  4. Variabel sistem tidak diketahui saat membuka phpmyadmin

  5. Memperbarui semua baris dalam satu kolom menggunakan phpMyAdmin