目次
実生活や仕事では、SQL サーバー データベースでオブジェクトを開発する必要があることがよくあるため、さまざまな名前が存在します。個人やチーム メンバーが開発されたオブジェクトを理解しやすくするために、要件に応じてオブジェクトに名前を付ける必要があります。 。ただし、命名も対応する仕様に従って行う必要があります。そうしないと、ライブラリで開発されるコンテンツが乱雑になってしまいます。ただし、SQL Server の命名規則は組織、プロジェクト、個人によって異なる場合があるため、一般的な命名規則の提案をいくつか示します。
1. 識別子
- 識別子の最初の文字は、Unicode (Unicode) 2.0 標準で定義された文字 (ラテン文字 a~z および A~Z および他の言語の文字を含む)、アンダースコア「_」、記号「 @」のいずれかである必要があります。 " またはシャープ記号 "#"。
- SQL Server では、「@」記号で始まる識別子はローカル変数またはパラメーターを示し、数字記号「#」で始まる識別子は #gzb などの一時テーブルまたはプロセスを示し、二重数字記号で始まる識別子は" " シンボルは、gzb などのグローバル一時オブジェクトを表します。
- ラテンアルファベットまたはその他の国別文字の 10 進数を識別子の一部にすることができます。
- 識別子を Transact-SQL の予約語にすることはできません。
- 埋め込みスペースやその他の特殊文字は使用できません。
次に、テーブル名 (Table):
- Order、UserAccount などの単数形を一律に採用し、Orders、order などの使用に反対します。
- 最初の文字を大文字にします。複数の単語がある場合は、単語の最初の文字を大文字にします。たとえば、Order、UserAccount、order、Useraccount、ORDER などの使用を禁止します。
- 中国語のピンイン (AgentBaoCi など) は避けてください。
- アンダースコア接続は避けてください。例: User_Accout (アンダースコアは Oracle データベースに適用されます)。
- 名前は長すぎないようにし、英単語 3 語 (22 文字) 以内にしてください (例: WebsiteInfomationModifyRecord)。
- テーブル名は意味が分かりやすく、機能を表現できる英単語や略語を使用するのがベストです。英単語で表現する場合は、予約語を避け、完全な英単語を使用することをお勧めします。
注記:
ここには疑問があります: テーブル名が複数形であると考える人もいれば、単数形であると考える人もいます。私は通常単数形を使用しますが、ここでどのメソッドが使用されているかを知っているコード友達がその理由を教えてくれることを願っています。
- テーブル オブジェクトをより正確に記述するには、「user」ではなく「user」など、複数形を使用してテーブルに名前を付けることをお勧めします。
3. フィールド名 (フィールド):
- フィールド名は、フィールドの意味を明確に伝える説明的な名前にする必要があります。
- フィールド名は一意である必要があり、同じテーブル内で重複した名前を持つことはできません。
- フィールド名は簡潔で長すぎないものにする必要があります。
- 最初の文字は大文字で、複数の単語がある場合は、単語の最初の文字が大文字になります。
- テーブルの接頭辞の命名については、テーブルの接頭辞を 2 以内に制御することをお勧めします。また、接頭辞はテーブルの機能やカテゴリを表現できる説明的なものにする必要があります。たとえば、システム テーブルには S_、D_ などの名前を付けることができます。
4. 制約:
- 制約名は、制約の性質と効果を説明的に反映する必要があります。
- 混乱や競合を避けるために、制約名は一意である必要があります。
- 制約のタイプを示すプレフィックスを使用することをお勧めします (例: PK_table 名、UQ_table 名、IX_table 名など)。
たとえば、主キーと外部キーは次のようになります。
- 主キー列には通常、テーブル名とその後に「ID」が接頭辞として付けられます (例:
CustomerID
)。 - 外部キーには、関連テーブルの主キーと同じ名前を使用し、適切なプレフィックス (たとえば、
Order_CustomerID
) を付ける必要があります。
5. インデックス (インデックス):
- インデックス名は、その役割と列情報を明確に反映する必要があります。
- 混乱や競合を避けるために、インデックス名は一意である必要があります。
- インデックスの種類を示すプレフィックスを使用することをお勧めします (例: IX_テーブル名_列名、UQ_テーブル名_列名など)。
6、ストアド プロシージャ (ストアド プロシージャ):
- ストアド プロシージャ名は、その機能と役割を説明的に反映する必要があります。
- 混乱や競合を避けるために、ストアド プロシージャ名は一意である必要があります。
- ストアド プロシージャの種類を示すプレフィックスを使用することをお勧めします (例: SP_、PR_ など)。
7.機能:
- 関数名は、その機能と役割を説明的に反映する必要があります。
- 混乱や競合を避けるために、関数名は一意である必要があります。
- 関数のタイプを示すためにプレフィックスを使用することをお勧めします (例: FN_ など)。
8、トリガー(トリガー):
- トリガー名は、その役割と、関連するテーブルに関する情報をわかりやすく反映する必要があります。
- 混乱や競合を避けるために、トリガー名は一意である必要があります。
- トリガーのタイプを示すには、TR_ などの接頭辞を使用することをお勧めします。
9、ビュー (ビュー):
- ビュー名は、ビューが表示するテーブルまたは列の情報を説明的に反映する必要があります。
- 混乱や競合を避けるために、ビュー名は一意である必要があります。
- ビューのタイプを示すには、V_ などの接頭辞を使用することをお勧めします。
10、大文字
- SQL Server はデフォルトで大文字と小文字を区別しませんが、読みやすさを向上させるためにデータベース全体で一貫した大文字の使用スタイルを維持することをお勧めします。
要約:
開発と管理を容易にするために、命名規則は明確さ、簡潔さ、理解力、統一性の原則に従う必要があります。同時に、名前の競合や混乱を避けるために、異なる種類や目的を識別するために接頭辞を使用することをお勧めします。