[解決済み] 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
のようにします。これが現実的でない場合、私は参照されるフィールド名を外部キー名に追加しています。
この命名規則により、テーブルの定義を見るだけでシンボル名を "推測" することができ、さらに、一意な名前を保証することができます。
関連
-
MySQL インタビューの質問 - ハッシュインデックスを設定する方法
-
Mysql がエラーを報告 オペランドには 1 つのカラムが含まれている必要があります。
-
[解決済み] git リポジトリの命名規則はありますか?
-
MySQL 接続タイムアウト。エラー SQLSTATE[HY000] [2002] 接続がタイムアウトしました 解決済み
-
[解決済み] Ubuntu linux上で動作するリモートMySQLサーバーを再起動する方法は?
-
[解決済み] SQLでカラムに最大値を持つ行のみを選択する [重複]。
-
[解決済み] MySQLのクエリ結果をCSV形式で出力するにはどうすればよいですか?
-
[解決済み] Pythonの変数名や関数名の命名規則について教えてください。
-
[解決済み] C#の定数の命名規則?
-
[解決済み】MySQLのDatetimeカラムにデフォルト値を設定する方法とは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
MySQLのNULLについて解説した記事
-
MySQLデータ型の詳細
-
MySql認証ベースのvsftpd仮想ユーザー
-
[解決済み] SQLエラー。ORA-01861:リテラルは、フォーマット文字列01861に一致しません。
-
MySQLでテーブルを削除します。親行が削除または更新できません: 外部キー制約に失敗しました。
-
Unknown character set.を解決する。MySQLデータベースインポート時の'utf8mb4'エラーの解消
-
[解決済み] SQLを使用してSUMとSUBTRACTを行うには?
-
[解決済み] MySQLでdatetimeとtimestampのどちらのデータ型を使用すべきですか?
-
[解決済み] SQLでカラムに最大値を持つ行のみを選択する [重複]。
-
[解決済み] 外部キーの命名規則