多くのサーバーに複製する必要があるアプリケーションを構築しています (そうでないことを願っていますが、オンライン製品をリリースするまで、クライアントが独自のクライアント/サーバー コピーを必要とするかどうかを知る方法はありません)。
サーバーの数が不明であるため、すべてのトランザクション テーブル ID に GUID を使用することにしました。各クライアントには独自のデータベースがあるため、NEWSEQUENTIALID() のデフォルトを使用するつもりであり、最大のテーブルは年間 150 万行しか追加しません (平均で 15,000 行)。パフォーマンスの問題はあまりないと思います。 .
ただし、外部キーに「選択されていない」ことを示す必要がある場合の処理方法がわかりません。たとえば、クライアントには 1 人の管理者ユーザーがいます。これは、login.id (GUID) への外部キー (login_id) として設定されます。ただし、クライアントにまだ管理者ユーザーがいない場合、「None Selected」キーを簡単に設定するにはどうすればよいでしょうか?
以前のアプリケーションでは、IDENTITY 列を使用し、ほとんどのテーブルに ID 0 のダミー エントリを挿入していました。GUID で同様の機能を提供するための受け入れられたアプローチはありますか?