Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jaka jest właściwa konwencja nazewnictwa dla pakietów MySQL FK?

W MySQL nie ma potrzeby nadawania nazwy symbolicznej ograniczeniom klucza obcego. Jeśli nazwa nie zostanie podana, InnoDB automatycznie utworzy unikalną nazwę.

W każdym razie jest to konwencja, której używam:

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

Przykład:

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

Staram się trzymać tych samych nazw pól w tabelach odwołujących się i przywoływanych, jak w user_id w powyższym przykładzie. Gdy nie jest to praktyczne, dołączam również nazwę pola, do którego się odwołuje, do nazwy klucza obcego.

Ta konwencja nazewnictwa pozwala mi „odgadnąć” nazwę symboliczną po prostu patrząc na definicje tabeli, a ponadto gwarantuje również unikalne nazwy.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak skonfigurować ASP.NET MVC 2 z MySQL?

  2. Wyszukiwanie pełnotekstowe MySQL z częściowymi słowami

  3. Co oznacza pooling=false w ciągu połączenia MySQL?

  4. Dziwne zachowanie SUM i CONCAT w MySql

  5. PostgreSQL odpowiednik tablic pamięci MySQL?