ここには多くの回答がありますが、これは非常に価値のある命名規則ではないことを示しています。他の答えに納得していない人々のために、私は他の多くの答えが言っていることを実証しようとします。
SELECT
bar
, fizz
, buzz
FROM dbo.foo
上記のステートメントでは、という名前の列から3つの列を選択していますdbo.foo
。プレフィックスの主な不満の1つdbo.foo
は、テーブルかビューかを知らないことです。もちろん、それは抽象化としての見方の長所の1つですが、私は脱線します。彼らはこのようにオブジェクトにプレフィックスを付けるべきだと言っていますdbo.tblFoo
。これで、上記のクエリでオブジェクトが(おそらく)テーブルであることがわかります。ただし、その目標と機能的に同等なものを作成すると、次のようになります。
SELECT
bar
, fizz
, buzz
FROM dbo.Foo --table
プレフィックスが効果的に主張しているのに、コメントは役に立たないと思われます。役に立たないノイズを強調するために、このメタデータコメントインジェクトは、より複雑なクエリを検討します。
SELECT
qc.occurances
, i.employeeId
, q.questionText
FROM dbo.questionCount /*Indexed view*/ qc WITH (NOEXPAND)
INNER JOIN dbo.interviewer /*partitioned view*/ i ON i.employeeId = qc.interviewerId
INNER JOIN dbo.question /*table*/ q ON q.id = qc.questionId
WHERE
EXISTS (
SELECT
1
FROM dbo.currentEmployees /*view*/ ce
INNER JOIN dbo.questionsAsked /*table*/ qa ON qa.candidateId = ce.candidateId
WHERE
ce.employeeId = i.employeeId
AND
qa.questionId = q.id
)
AND
qc.occurances > 5;
余分なコメントは、そのクエリを推論しやすくするのですか、それとも余分なノイズを追加するだけですか?私の意見では、彼らは余分なノイズを追加し、ゼロ値を追加するだけです。それが反接頭語が言おうとしていることです。さらに、データモデルを調整する必要がある場合、コメントを更新するコストはプレフィックス付きテーブルの名前を更新するよりもはるかに低いため、実際にはプレフィックスを使用する方がそれらのコメントよりも悪いです。これらのプレフィックスにはコストがかかり、貴重な情報を伝えないため、避ける必要があります。
一部の人々が引用するプレフィックスの別の利点は、開発環境で何らかのグループ化または順序付けを与えることができることです。コードの編集に多くの時間を費やしているため、これは一部の人にとっては魅力的な議論になり得ます。しかし、私の経験では、現代の開発環境は同等または優れたオプションを提供し、コードに無駄なメタデータを散らかさず、柔軟性を制限しません。
Class
?