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

Apa konvensi penamaan yang tepat untuk FK MySQL?

Di MySQL, tidak perlu memberikan nama simbolis untuk batasan kunci asing. Jika nama tidak diberikan, InnoDB membuat nama unik secara otomatis.

Bagaimanapun, ini adalah konvensi yang saya gunakan:

fk_[referencing table name]_[referenced table name]_[referencing field name]

Contoh:

CREATE TABLE users(
    user_id    int,
    name       varchar(100)
);

CREATE TABLE messages(
    message_id int,
    user_id    int
);

ALTER TABLE messages ADD CONSTRAINT fk_messages_users_user_id 
    FOREIGN KEY (user_id) REFERENCES users(user_id);

Saya mencoba untuk tetap menggunakan nama bidang yang sama dalam tabel referensi dan referensi, seperti pada user_id dalam contoh di atas. Jika ini tidak praktis, saya juga menambahkan nama bidang yang direferensikan ke nama kunci asing.

Konvensi penamaan ini memungkinkan saya untuk "menebak" nama simbolik hanya dengan melihat definisi tabel, dan selain itu juga menjamin nama yang unik.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana Anda terhubung ke database MySQL menggunakan Oracle SQL Developer?

  2. Dapatkan poin poligon mysql

  3. Bagaimana cara cepat MEMILIH 3 catatan acak dari tabel MySQL 30k dengan filter tempat dengan satu permintaan?

  4. Bagaimana cara mendapatkan banyak catatan terhadap satu catatan berdasarkan relasi?

  5. Cara memasukkan / mengambil file yang disimpan sebagai BLOB di db MySQL menggunakan python