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. 複雑なSQLコマンドを実装する方法

    2. Django管理者リストの表示+ForeignKey=空の変更リスト

    3. SPARSECOLUMNを使用する理由と時期(SQL SERVER 2008)

    4. SQL SERVER – SQLインジェクション攻撃を回避するために動的SQLを処理する1つのトリック?