回答:
外部キー名は何でも構いませんが、実際にはテーブル名を最初に置くという慣習に従うことをお勧めします。
これの最も重要な理由は、外部キー名がデータベース内で一意でなければならないことです(逆に、インデックス名は各テーブル内でのみ一意である必要があります)。したがって、この規則に従うと、外部キー名は各テーブル内で一意である必要があります。
個人的には、私は規約を使用してい[table_name]_fk_[field_name]
ます。
外部キーに名前を付けるには、外部キーだけでなく、テーブルの制約を明示的に綴る必要があります。
簡単な方法(自動命名、結果は[table_name]_ibfk_[index]
):
ALTER TABLE `[table_name]`
ADD FOREIGN KEY (`[field_name]`)
REFERENCES `[foreign_table_name]`(`[foreign_field_name]`);
明示的な方法(結果は[table_name]_fk_[field_name]
):
ALTER TABLE `[table_name]`
ADD CONSTRAINT `[table_name]_fk_[field_name]`
FOREIGN KEY (`[field_name]`)
REFERENCES `[foreign_table_name]`(`[foreign_field_name]`);