公式のPostgreSQL大文字表記規則[終了]


14

DB、テーブル、およびフィールド名の大文字使用に関する公式のPostreSQL規約はありますか?

公式サイトは小文字と_単語の分離を示唆しており、このポリシーが公式かどうか疑問に思います。

CREATE TABLE films (
    code        char(5) CONSTRAINT firstkey PRIMARY KEY,
    title       varchar(40) NOT NULL,
    did         integer NOT NULL,
    date_prod   date,
    kind        varchar(10),
    len         interval hour to minute
);

1
また、ドキュメントのこの部分をチェックしてください識別子
ypercubeᵀᴹ

回答:


20

基本的に、Veraceのコメントをミラーリングしてこれを述べ、準公式にします。

すべての状況をカバーするベストプラクティスはありません。以下は、次のことを前提としています(これを行っていない場合の対処方法)。

  • あなたはすでにあなたのチームとこれについて話し合っています(多くの場合、自分で作業する人は決心しなければなりません)
  • 既にあなたのチームにはSQLの正式なスタイル定義はありません(そうでなければ、私たちに尋ねることはないでしょう)
  • コードには形式化されたスタイル定義はありません(他の言語で既に確立されている同じ基本規則に従い、スタイルを形式化します)

したがって、これの残りの部分は多少意見がありますが、経験に基づいています

  1. テーブル名に関して
    1. 単一のエンティティ名を使用する必要があります(これによりドキュメント化が容易になります)
    2. ここではPascalケースを使用する必要があります
  2. フィールド名に関しては
    1. フィールド名にcamelCaseを使用する
    2. 定義が複数形として明確に意味をなさない限り、短い単数名を使用します(ほとんど意味がありません)
  3. 独自の関数またはストアドプロシージャ名になると
    1. underscore_separationを使用
    2. パラメータ化にフィールドの命名を使用する
  4. 組み込みのデータベース関数または言語名(例:SELECT)に関しては
    1. 特定の方法で大文字にする必要がない限り、すべて大文字を使用します
    2. あなたの言語のAPIを知って、合理的または必要なものを知ってください
  5. 間隔に関しては
    1. 多くの人は、キーワードには列の配置を使用し、キーワードではないものにはインデントを使用します
    2. 多くの人は、フィールドが各行で区切られているときに行の先頭でコンマを使用します(これにより、選択リストから特定のフィールドを簡単にコメントアウトできます)
    3. 戻り値のヘッダーであっても、物の名前の一部としてスペースを使用しないでください。
  6. 句読点に関しては
    1. 括弧-それらを使用します。彼らは無料です。約束します。
    2. セミコロン-それらを使用します。彼らはあなたを壊すつもりはありません。彼らはあなたにあなたのコードを考えさせる。そして、彼らは良い衛生状態です。
    3. キャリッジリターン-もう一度、無料です;-)そしてコードを読みやすくします。

また、一般的なスタイルガイドの適用を支援している間、Postgresのコミュニティは通常、camelCaseまたはPascalCaseを使用せず、代わりにunderscore_separationを使用することを認識してください。本当に重要なビットは、あなたがいることを確認することです一貫してどこでも特定のスタイルを確立し、使用します


3
「本当に重要なのは、一貫性を保つためにどこでも特定のスタイルを確立して使用することを保証することです」一貫性が鍵です。それなしでは、考えるべきではないことを考えなければなりません。
マックスヴァーノン14年

4
PostgreSQLのcamelCaseとPascalCaseは少し苦痛です。本当にそのような名前にしたい場合は、これらを引用する必要がありますそうしないと、システムは静かにそれらを小文字にします(関連付けが発生する可能性のあるものはすべて、略して大文字で書きます)。
dezso

データベース名はどうですか?私が使用する必要がありdatabase_namedatabase-nameDatabaseNamedatabaseName、など?
ma11hew28

1
この回答は実際にPostgreSQL用ですか?PG固有の回答でテーブル名にPascalCaseを使用するようにアドバイスする場合、(a)ほとんどの例が小文字のキーワードを使用しているという事実に対処する方法、および(b)テーブル名を引用するか、 PGはそれらを小文字に折りたたみます。
アンドレKR

@AndreKRがここにあります。ソフトウェア開発者は大人になり、ドキュメントの読み方を知り、一貫してコードを書く方法をチームと話し合うことを期待しています。この答えはコミュニティWikiです。つまり、誰でも編集および改善できます。「これが唯一の方法」と正確に言うことはできません。一部の人々がすべて小文字で例を挙げているからといって、それが人生で唯一の方法であることを意味するわけではありません。この答えの精神であるあなた自身の道を見つけなければならない。このコミュニティの回答を編集して、改善してください。ありがとう!
jcolebrand

4

簡単なGoogleは、ベストプラクティスを示す多くのサイトを明らかにします。していない-私は二つのことを言うでしょうEVER(;同じことが任意の英数字以外の文字のために行くの移植は異なるエスケープのメカニズムに起因することができなくなってしまう)「私のテーブル名を」スペースを使用します。これらの種類のメカニズムでは、通常、大文字と小文字を区別する必要があります。英語(またはあなた自身の)言語には十分な文字と単語があり、識別子の長さは十分に長い(identifier_length <32のシステムは知りません、PostgreSQLは64です)。また、同じことを行うSQLキーワード(RDBMSによって異なる)を使用しないでください。

ような文

SELECT "Field" FROM "Table";

有効にすることができます!絶対に重要なことは、明確で比較的単純な規則を持ち、それに固執することです。あなたが知るように、人々は異なる意見を持っています-トピックを読み、あなたにとって「正しい」と感じるものを選んでください。これらのサイトを参照してください。12345、...(もっと多くあります)。


おかげで、私は自分の検索で多くに出会った。公式のスタイルガイドがあるかどうか知りたかった。
アダムマタン14年

(singular_table_name / plural_table_name)討論の両側には、私が尊敬する他の分野に関する意見を持つ多くの開業医がいます。私は自分自身が「一人」の男です。原子力発電所を運営している場合、catstrophic_meltdownというテーブルがあり、レコードをまったく表示したくない場合があります。主キーに接尾辞_idを付け、子テーブルでParent_Table_Name_FKとして参照します-それが私がしていることです。その後、簡単です!caps / no-capsに関しては、私のSQLスクリプトにはキャメルケース(引用符なし)があり、私のステートメントはそうでないかもしれません。
ベレース14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.