2012-11-12 6 views
6

テーブルごとにMySQLインデックス名と外部キー名が異なる必要がありますか?例えば テーブルごとにMySQLインデックス名と外部キー名が異なる必要がありますか?

2つのテーブルの両方は、第3のテーブル(プロファイル)に属しているのと同じフィールド(PROFILE_ID)を有します。だから私は、profile_idのインデックスを作成し、外部キーとして制約したい。

両方のテーブルでインデックス名の名前を "profile_id_idx"にできますか?

外部キーの名前として "profile_id_fk"もどちらも使用できますか?

+0

いいえ、これは外部キーのためのものです –

+1

それがうまくいっても、なぜリスクを冒すのですか? – mvp

答えて

6

外部キー名は、すべてのデータベースのすべてのテーブルで一意である必要があります。インデックス名は、異なるテーブルで再使用することができます。

+0

外部キー制約を明示的に命名すると、名前の競合が発生するか、データベースとテーブルの接頭辞( 'db_tbl_col_fk')がコードの重複を引き起こす可能性があります。 –

関連する問題