Mysql
 sql >> база данни >  >> RDS >> Mysql

Какво представлява правилната конвенция за именуване за MySQL FK?

В MySQL няма нужда да се дава символно име на ограниченията на външния ключ. Ако не е дадено име, InnoDB създава уникално име автоматично.

Във всеки случай, това е конвенцията, която използвам:

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

Пример:

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);

Опитвам се да се придържам към същите имена на полета в таблиците за препращане и препратки, както в user_id в горния пример. Когато това не е практично, добавям и името на референтното поле към името на външния ключ.

Тази конвенция за именуване ми позволява да „отгатна“ символичното име само като гледам дефинициите на таблицата и освен това гарантира уникални имена.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Не можете да посочите целева таблица за актуализиране в клаузата FROM

  2. Издърпайте първите X думи (не само знаци) от mySQL

  3. Не мога да се свържа с отдалечена база данни с помощта на php

  4. MySQL:извличане на голям избор по парчета

  5. MySQL изхвърля в CSV текстови файлове с имена на колони в горната част?