ストアドプロシージャの命名に関するさまざまなルールを見てきました。
sproc名の前にusp_を付ける人もいれば、アプリ名の省略形を付ける人もいれば、所有者名を付ける人もいます。本当に意味がない限り、SQL Serverでsp_を使用しないでください。
プロシージャ名を動詞で始める人もいます(Get、Add、Save、Remove)。その他はエンティティ名を強調します。
何百ものsprocが存在するデータベースでは、すでに存在すると思われる場合、スクロールして適切なsprocを見つけるのは非常に困難です。命名規則により、sprocを見つけやすくなります。
命名規則を使用していますか?それを説明し、他の選択肢よりも好む理由を説明してください。
返信の概要:
- 誰もがネーミングの一貫性を主張しているようですが、誰にとっても同じネーミング規則を使用する方が、特定のネーミング規則を使用するよりも重要かもしれません。
- 接頭辞:多くの人がusp_または類似のもの(ただしまれにsp_)を使用していますが、他の多くはデータベースまたはアプリ名を使用しています。賢いDBAの1人は、gen、rpt、およびtskを使用して、一般的なCRUD sprocを、レポートまたはタスクに使用されるものと区別します。
- 動詞+名詞は名詞+動詞よりわずかに人気があるようです。動詞にSQLキーワード(選択、挿入、更新、削除)を使用する人もいれば、GetやAddなどのSQL以外の動詞(またはそれらの省略形)を使用する人もいます。単一名詞と複数名詞を区別して、1つまたは複数のレコードが取得されているかどうかを示すものもあります。
- 必要に応じて、最後に追加のフレーズが提案されます。GetCustomerById、GetCustomerBySaleDate。
- 名前のセグメント間にアンダースコアを使用する人もいれば、アンダースコアを使用しない人もいます。app_ Get_CustomerとappGetCustomerの比較-読みやすさの問題だと思います。
- sprocの大規模なコレクションは、OracleパッケージまたはManagement Studio(SQL Server)ソリューションとプロジェクト、またはSQL Serverスキーマに分離できます。
- 不可解な略語は避けてください。
私が選んだ答えを選ぶ理由:良い回答がたくさんあります。皆さん、ありがとうございました!ご覧のとおり、1つだけを選択するのは非常に困難です。私が選んだものは私に共鳴しました。私は彼が説明するのと同じ道をたどりました-動詞+名詞を使用しようとすると、顧客に適用されるすべてのsprocを見つけることができません。
既存のsprocを見つけたり、存在するかどうかを判断したりできることは非常に重要です。誰かがうっかり別の名前で重複したsprocを作成すると、深刻な問題が発生する可能性があります。
私は通常、何百ものsprocを持つ非常に大規模なアプリを扱っているので、最も見つけやすい命名方法を好みます。小さいアプリの場合は、メソッド名の一般的なコーディング規則に従っているため、動詞+名詞を推奨します。
彼は、あまり役に立たないusp_ではなく、アプリ名をプレフィックスとして付けることも推奨しています。複数の人が指摘したように、データベースには複数のアプリのsprocが含まれている場合があります。したがって、アプリ名を前に付けると、sprocを分離するのに役立ち、DBAや他の人がsprocがどのアプリに使用されているかを判別するのに役立ちます。