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

Bisakah saya menggunakan batasan kunci asing yang sama di dua tabel berbeda?

Ada kolom dan ada kunci asing (FKs) dan ada kendala.

Anda dapat memiliki nama kolom dalam sebuah tabel terlepas dari tabel lainnya.

FK adalah kumpulan tabel dan kolom referensi dan kumpulan tabel dan kolom referensi. Semua nama bersama-sama mengidentifikasi FK. Ini adalah hal konseptual tentang database.

Kendala FK, menjadi kendala, adalah sesuatu yang namanya harus unik di atas database. Ia memiliki dan memberlakukan FK terkait, yaitu yang dijelaskan dalam deklarasinya. Anda dapat memiliki beberapa batasan FK dalam tabel yang menerapkan FK yang sama.

DBMS memiliki nama unik otomatis untuk batasan FK. Misalnya bagian nama ditambah bagian nomor di mana kendalanya adalah kendala FK nomor dari tabel dengan nama itu. Anda sebenarnya dapat memiliki teks definisi batasan FK tanpa nama yang sama beberapa kali dalam satu tabel dan di beberapa tabel, masing-masing untuk batasan FK yang berbeda. (Yang di dalam tabel tertentu menerapkan FK yang sama.)

Anda harus memiliki skema penamaan yang unik ketika Anda ingin menamainya. Referensi dan nama tabel yang direferensikan harus dilibatkan, dan bila perlu membedakan nama kolom.

Yang membingungkan, kami mengatakan FK saat kami mengartikan batasan FK.

Saat Anda mengatakan "Ini adalah kunci asing yang sama di dua tabel berbeda", itu menyalahgunakan istilah. Ada dua FK berbeda yang terlibat, dan kendala FK terkait. Maksud Anda mungkin "itu adalah kolom referensi yang sama dan tabel dan kolom yang direferensikan di kedua batasan FK" atau "itu adalah referensi teks yang sama di kedua deklarasi batasan FK deklarasi tabel". Tapi nama kendala FK harus unik.

Saat Anda mengatakan "Dalam kedua kasus ini merujuk ke pengguna internal," Anda mengonfirmasi bahwa jenis dan/atau tabel kolom yang direferensikan sama untuk kedua batasan FK. Tetapi mereka adalah batasan FK yang berbeda untuk FK yang berbeda.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dapatkan uuid yang dihasilkan setelah memasukkan php

  2. MySQL Update Incremented (Tidak Auto-Incremented) Nilai Kolom

  3. html menelusuri drop-down nilai yang dipilih tidak dimasukkan dalam MYSQL

  4. skrip untuk mengubah file sql dump mysql menjadi format yang dapat diimpor ke sqlite3 db

  5. Pohon MySQL dipesan oleh orang tua dan anak