2009-06-04 60 views
14

可能性の重複:新しいプロジェクトの開始時に
Database, Table and Column Naming Conventions?命名規則

たびに、私は、データベース内のテーブルの規則と列に名前を付けることを考えています。あなたのお勧めはどんなケースですか?なぜですか?私はケース2ライク

ケース1 column_nameに
ケース2 ColumnNameに
ケース3. COLUMN_NAME
ケース4 COLUMNNAME

+1

@TheTXI - この質問は、テーブルの接頭辞に関するもので、名前のスタイルについてはありません。 – sasa

+0

+1自分の質問の再編集! –

答えて

18

大文字と小文字の区別がないため、#1のケースを使用する必要があります。また、キャメルケースは頭字語で吸う。

columnID 
columnId 
columnIDAlternative 
columnIdAlternative 
RASCScore 
RascScore 

column_id 
column_id_alternative 
rasc_score 

また、単語間のスペースは、すべてを一緒に挟むよりも視覚的に楽しいです。下線をタイプする痛みが何であれ、絶対に価値があります。下線はスペースをシミュレートし、複合名詞やフレーズには通常の書かれた言語でスペースが入ります。オンリー・プレイング・トゥー・トゥー・ライスは、私は私のオブジェクトを名前として、私はまったく同じ私のテーブルに名前を付ける「どちらあなたが以前のプロジェクトで使用したもの」この場合の一貫性は、おそらく、特定のイデオロギーよりも重要である...

+3

私はCamelCaseが好きではなかった。 – Xeoncross

+1

最初にUnderscoreを使い始めると、1年ほど後にうまくいくように見えるので、気分が悪くなります。特に.NetでORMフレームワークが使用されている場合 – Ravia

+0

.NETのテーブル名とORMフレームワークの間のリンクについて詳しく説明できますか? –

2

、値がより良い私にはそのように目立つように見えます。あなたが選んだものは、一貫性を保ちます!

2

ケース2(ColumnName)を使用します。下線は入力するのが苦痛です。

インデックス名、トリガ、または頻繁に入力されないその他のオブジェクトでは、アンダースコアはOKです。テーブル、カラム、ビュー、保存されたprocの名前は頻繁に使用され、そのアンダースコアに達すると頻繁に使用すると遅くなるので、それらを退出させます。

0

私はちょうどcamelCasing形式(4)優れた可読性を愛し、私は2つの理由で第2位に同意なしに下線

5

  1. 下線は入力する痛みはありません。
  2. In .Netプロパティは、通常このように扱われます。これにより、すべてのネーミングが一致します。これは便利で、ORMを使用している場合に役立ちます。

偶然、私はJava開発者がクラスで#4を使用する傾向があると考えています。クライアントソフトウェアがJavaであれば#4への私の答えを変えたいと思う。

+1

...ソフトウェアがPHPで書かれている場合#1 :) – sasa

7

あなたが選ぶことを決めるときは、同じものに固執することが最も重要です。これは一貫しています。

これはわかりやすく、前述したように、アンダースコアは醜いので入力するのが面倒です。 #4は第2位です。 #3大文字とアンダースコアの両方が過剰です。

3

それらをラップするために作成しようとしています。これは現代のORM(Object Relational Mappers)ではうまく機能します。なぜなら、データベース構造(またはその逆)に基づいてオブジェクトモデルを作成することが多いからです。受け入れられた答えは、「アンダースコアを入力することの苦痛」を痛感しているようですが、私は真剣にそれを受けます。 RSIに苦しんで、特にShiftキーとCtrlキーを押さえている私のピンクで、私は不必要なアンダースコアを避けるために絶対にすべてを行います。もちろん、この問題に対する良い答えは、CapsLockキーをShiftキーまたはUnderscoreキーに再マップすることです。しかし、いずれにしても、ORMでの作業について誰も言及していないため、この回答を古い質問に追加します。私はほとんどのプログラミングを.NETで行っているので、私のプロパティのほとんどはラクダで書かれているので、私はラクダのケースでもdbカラムの名前を付けます。私はラクダのケーシングの略語に全く問題はない。だから私は次のようなことをする:

PersonDao.GetIdByName( "Hello world")。

キャメルのケーシングは間違いなく長い名前のために迷惑になる...しかし、私は長い名前を避ける。通常、それは私が物事を正しく構成していないことを意味します。私がそうでないと判断した場合、そのようなケースでは、長い名前は非常にまれであり、状況はとてもユニークで、とにかく私を遅らせるものではありません。

名前付けは絶対に重要だと思います。 XMLフェティッシュを持つ人と同じように、他の人はデータベースのフェティシズムを持っています。個人的に、ORMを使用してデータベースを完全に(またはできるだけ)無視するのが好きです。これを容易にするために、コードのプロパティに名前を付けるのと同じように、列の名前を付けます。だから最終的には、私のコードが存在する言語に存在するすべての慣例が使用されています。