質問

テーブルとビューを命名するとき、どの基準に従うべきですか?たとえば、テーブル名の先頭にTBL_のようなものを置くことをお勧めしますか? CT_、LUT_、またはCODES_のように、コード/ルックアップテーブルを何らかの形で指定する必要がありますか?他にやらない人はいますか?

私はMS SQL Serverを使用しており、多くのテーブルを備えた多くのデータベースを持っているので、合理的なサポートを備えた標準として使用できるものがあると便利です。

役に立ちましたか?

解決

わかりました、最初にテーブルの名前の前にTBLを置くことはありません。それはテーブルです、私たちはすでにそれです。それはハンガリーの表記と呼ばれ、5年以上前に人々はそれをやめました。

それが何であるかに基づいてオブジェクトを呼び出すだけです。テーブルが従業員のデータを保持している場合、それを「従業員」と呼びます。コンピューターに関する情報を保持している場合は、「コンピューター」と呼ばれます。コンピューターを従業員にマップして「EmployeEcomputer」または「ComputerEmployee」と呼ぶ場合(個人的には「EmployeEcomputer」が好きです)。

(ハンガリー語の表記法を使用しない以外の)使用する実際の正しい命名規則はありません。オブジェクト名がそれが重要であることを理解している限り。

他のヒント

アクセスとグループ化の両方に、スキーマ(おそらくSQLの名前空間と考えてください)を使用します。したがって、「TBL」などの代わりに

  • data.thing
  • data.thinghistory
  • data.stuff

データスキーマにはコードがありません。データスキーマの外側に住むテーブルはありません。これはもちろん、必要に応じてルックアップまたはステージングスキーマを持つために拡張できます。

使用するビューについて vw しかし、これはSQL Server 2000のテーブルと区別することであり、今はちょっとした遺産です

個人的に私は大ファンです FanöBedingung, 、ここでは、名前が別の有効な名前の始まりになることが許可されていないことを意味します。

次に、2つの名前間のハミング距離は、複数の異なる文字が優れています。

はい、それは前身のルールですが、人生を楽にします。

そして、3番目の名前は顕著でなければなりません。さもなければ、声の認識が真実になると、あなたは怒ってしまいます。

それは本当に個人的な好みと開発の容易さに要約されるので、本当に「最高の」命名条約がそこにあることを知りません。私のアドバイスは、命名条約を選んでそれを遵守することです。アンダースコアで単語を分離したい場合は、すべてのデータベースオブジェクトでそうしてください。 CamelCaseを使用する場合は、すべてのデータベースオブジェクトでそうしてください。

私の店では、次のルールを遵守します。

アンダースコアで単語を分離し、すべての低ケース文字を使用します。
私たちのテーブル名は、それらが何であるかを説明しています:dbo.person、dbo.invoice。
私たちの多くのテーブル名も、それらが何であるかを説明しています(追加して んん マッピングされている多くの関係を示すために:dbo.person_mm_address。ユーザー定義のストアドプロシージャは、実行されるオブジェクトとアクションの両方を説明しています:usp_person_select、usp_address_select_by_cityビューと関数は、ストアドプロシージャと同じルールに従います。インデックスには、テーブル、キー列(順序で)、およびクラスター化/クラスター化の表示:ix_person_last_name_first_name_ncが含まれます

これが私たちが私の店で使用しているものであるからといって、これらのルールがあなたに適しているという意味ではありません。あなたとあなたの開発チームが同意するものを選ぶことは、あなたが決定することが有用であり、簡単に開発することができ、あなたが決定する命名条約を知って使用する文化を確立します。この場合、これにはデータベースで作成されたオブジェクトのコードレビューが含まれます。時間が経つにつれて、文書化された命名条約とピアコードレビューの組み合わせにより、慣習からの逸脱がますます少なくなりました。

この「非回答」が何らかの形で役立つことを願っています。

私は何年も前からこれらに満足しています

  • テーブル名:小さなキャップとアンダースコア、シングル{顧客、製品}
  • 多くの多くの関係のテーブル名:tablename1_tablename2:{customer_product}
  • ビュー:小さなキャップが最後にvを追加しました{customerv、productv、product_groupv}
  • 保存されたプロセス:テーブル名とfunction {customer_select、customer_insert、customer_delete、customer_update}

安価な共有ホスティングパッケージがある場合は、たとえばデータベース管理者サイト、DA_USERS、DA_QUESTIONSなど、すべてのオブジェクトの前でプロジェクトの略語を使用する必要があります。

ライセンス: CC-BY-SA帰属
所属していません dba.stackexchange
scroll top