1. ホーム
  2. mysql

[解決済み] MySQL FK の適切な命名規則とは?

2022-10-18 21:25:53

質問

ユニークでなければならないので、MySQL DB で 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 のようにします。これが現実的でない場合、私は参照されるフィールド名を外部キー名に追加しています。

この命名規則により、テーブルの定義を見るだけでシンボル名を "推測" することができ、さらに、一意な名前を保証することができます。