sql >> Databáze >  >> RDS >> Mysql

Jaká je správná konvence pojmenování pro MySQL FK?

V MySQL není potřeba dávat symbolický název omezením cizího klíče. Pokud není zadán název, InnoDB automaticky vytvoří jedinečný název.

V každém případě toto je konvence, kterou používám:

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

Příklad:

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

Snažím se držet stejných názvů polí v odkazujících a odkazovaných tabulkách jako v user_id ve výše uvedeném příkladu. Když to není praktické, připojím k názvu cizího klíče také název odkazovaného pole.

Tato konvence pojmenování mi umožňuje „uhádnout“ symbolické jméno pouhým pohledem na definice tabulek a navíc také zaručuje jedinečná jména.



  1. AttributeError:modul 'mysql' nemá atribut 'connector'

  2. Jak spustit příkaz MySQL z hostitele do kontejneru se serverem MySQL?

  3. Použijte tnsnames.ora v Oracle SQL Developer

  4. Vrátit seznam databázových poštovních profilů v SQL Server (T-SQL)