主キーとしてID列を使用するのが適切な方法である場合は、意見をお聞かせください。ORMツールの場合、テーブルにID列があると役立ちます。ただし、誤って重複して挿入するなど、他の副作用もあります。
ありがとうNayn
主キーとしてID列を使用するのが適切な方法である場合は、意見をお聞かせください。ORMツールの場合、テーブルにID列があると役立ちます。ただし、誤って重複して挿入するなど、他の副作用もあります。
ありがとうNayn
はい、INT(またはBIGINT)IDENTITYを使用することは、SQLServerにとって非常に良い方法です。
SQL Serverは、デフォルトのクラスタリングキーとして主キーを使用します。クラスタリングキーには、常に次のプロパティが必要です。
INT IDENTITYは法案に完全に適合します!
より多くの背景情報、特にGUIDをプライマリ(したがってクラスタリングキー)として使用することが悪い考えである理由については、KimberlyTrippの優れた投稿を参照してください。
GUIDを主キーとして使用する理由がある場合(レプリケーションなど)、必ず、これらのテーブルのクラスタリングキーとしてINTIDENTITYを使用してください。
マーク
IDENTITYキーは、レプリケーションや大量のデータのマージが行われない環境で、サーバー側で生成されたキーに適しています。それらの実装方法では、同じテーブルでの重複は許可されないため、心配する必要はありません。また、DELETEが多くないテーブルの断片化を最小限に抑えるという利点もあります。
GUIDは通常の代替手段です。これらには、DBラウンドトリップを必要とせずに、Web層で作成できるという利点があります。ただし、それらはIDENTITIESよりも大きく、極端なテーブルの断片化を引き起こす可能性があります。それらは(半)ランダムであるため、挿入は最後の1ページに焦点を合わせるのではなく、テーブル全体に分散されます。
Guidを使用するのは、分散アプリケーションを扱うときに非常に役立つからです。特に、すべての分散インスタンスも新しいデータを作成する必要がある場合。
それでも、単純な状況で整数の主キーを自動インクリメントしても問題は発生しません。覚えやすいのでSQLクエリを直接操作する方が簡単なので、実際にそれらを好むでしょう。