データベース関係のネーミングメモquneデータベース関係のネーミングメモ2008/01/24この頃,データベースの命名規則を考えています。新しく考えているわけではなくて,調べてるだけなんですけどね。こゆのは,いろいろなところで標準化の指針が出ているので,目についたものを訳しつつメモ。table(訳注:内部コードと表示文字列の対応表とか)には関連するテーブルの接頭辞をつける連結用のテーブル(訳注:多対多のテーブルをつなげるための中間テーブル)には,連結するテーブル名をつなげる。※ただし中間テーブルに明らかな意味がある場合は例外。主キーはテーブル名に"_id"の接尾辞をつけるすべてのフィールド名にテーブル名の接頭辞をつける(ただし外部キーは除く)外部キーの名前は参照するテーブルの主キーと同じ名前にすべきDATE型には"date_"の接頭辞,BOOLEAN型には"is_"の接頭辞をつけるうーん......これはちょっと一般的ではないかなぁ。気がする),DATE型に"date_"の「接頭辞」をつけるのには抵抗があります。シーケンシャルで一意なNUMBER型,みたいな決まりごとを作っていたりします。サロゲートキーにして,コードは一意になっても主キーにしない。Cabin」あたりが参考なりそうな感じです。こっちはテーブル名に複数形を推奨しているみたい。命名規則はちゃんと決めておかないと,ボディブローのようにじわじわとダメージになっていきます。問題だと思うのは,プロジェクトの途中から入ってくる人が,テーブルどうしの関係やフィールドの意味を自分で学習できないこと。当初から関わっている人のノウハウとして蓄積されちゃうもんだから,その人に聞かないと分からない,なんてことがよくあります。当初から関わっている人も,周りがついてこられないせいで,自分自身の負担をなかなか軽減させられません。これを機会に,ちょっと自分でもそれっぽいルールを作っておこうかな。