fc2ブログ
 

Technology へようこそ
ここは技術者の「経験」と「ノウハウ」のブログです


2008年07月18日

外部キーの命名規約

Oracleに限らず、RDBには外部キーというものがあります。
難しくいうと「関係データベースの関係モデルの文脈において、2つの関係
変数 (テーブル) の間の参照整合性制約」なんていう説明になりますが、
具体的にいうと「参照する側のテーブル項目の値(または組)には、参照
される側のテーブル項目の値(または組)に現れない値を、含むことは
できない」というものです。

あるテーブルにインデックスを作成する場合、命名規約としてよく使用
するのが

(テーブル名)_IDX1

という形だったりするのですが、今回、今まであまり使用しなかった外
部キーを使用するにあたり、この規約を踏襲するのは得策でないことが
判明しました。

外部キーは、「他のテーブルのある項目を参照している」ことになりま
すが、上記の命名規約だと

((テーブル名)_FK1

とかいう名前になってしまい、わかりにくいわけです。
たとえば参照制約性のエラーがでても、どのテーブルを参照しているか
わからないと対処ができないわけです。そこで、

参照先テーブル名_項目名_FKn

でどうだ?ということになったのですが、なんとなく、_ が2つあって
わかりにくい、ということで他の文字を探すことに。

(参照先テーブル名#項目名_FKn

という規約に落ち着きました。$や%はだめだったのですが、#はOKでした。
OracleのFOREIGN KEY の名前は30文字。テーブル名によってはオーバーす
る可能性もあるのですが。

でも私、やっぱり基本的に外部キー、嫌いなんですよね・・・。 [by H.K]

この記事に対するコメント


この記事に対するコメントの投稿














管理者にだけ表示を許可する



この記事に対するトラックバック
トラックバックURL
http://comfair2.blog24.fc2.com/tb.php/379-28a6e26f
この記事にトラックバックする(FC2ブログユーザー)