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