[PHP-users 27401] DBスキーマ命名規則

abecky@excite.co.jp abecky @ excite.co.jp
2005年 11月 7日 (月) 12:16:24 JST


こんにちは。阿部です。

DBスキーマの命名規則についての質問です。
これまでの命名規則は以下のようなものでした。

 + 会社, company

ID,         id
名前,       name



 + 担当者, person

ID,         id
所属会社    fk_company
パスワード, password
名前,       name


個人的にはこれで問題ないと思ってやってきたのですが、
最近、スキーマ命名規則を含めたApplication開発フレームワークが出回って
いるようなので、実はこんな風にすると便利なんて案があるのかも、と思い
投稿しました。



(1) Primary Key は、必ず ID で統一しているのですが、

  id_compary
  id_person

  のようにテーブル名をつけた方が、例えば、joinの時などに便利?

(2) name のような名前がかぶるカラム

  これまで joinするときは、

  SELECT c name, p name FROM company c, person p ......

  のようにアイリアス指定で対応してきたのですが、

  全カラム person_id, person_password, person_name
  なんてしておけば指定が楽?

  上記の問題点は、

  - 冗長。ダサイ
  - 冗長ならばと、prefixを略して(Ex. p_id, p_password)、
    なんてやり出すと規約も何もなくなって破綻に向かうことが容易に想像

(3) 外部キーは fk_参照先テーブル名

   -> 複数カラムの時は、うーん、ちゃんと規則性もなく適当にしてしまっていたかも。


いい管理方法をご存知な経験豊富な方がいらっしゃいましたらご教授、
よろしくお願いします。


PHP-users メーリングリストの案内