0

私のレガシーWebアプリケーションでは、SQLServer2005のcustomerテーブルの構造は次のとおりです。-

custId, custName,custAddress,custGUID
1        scott    mark       B36AF54E-F2B5-4845-9595-AC05K898AE14

私の質問は、GUIDであるuniqueIdentifier()として宣言されている列custGUIDについてです。主キーとuniqueIdentifierの違いと、guidとして追加の列を導入する理由がわかりません。さまざまなサイトごとに、uniqueIdentifierはsqlserver 2005全体で一意であることがわかりましたが、主キーはその特定の部分で一意です。テーブル 。しかし、SQLサーバー全体で任意の列をGUID/一意として作成するシナリオを考えることはできません。GUID列がいつどのように意味をなすのかを理解したいですか?すべてのチームメンバーは新しいので、謎を理解することはできません

4

1 に答える 1

0

これを行う理由はたくさんあるので、これは答えるのが難しいものですが、それらのほとんどはまったく良くありません。

データが複数のサーバーに保存されていたレガシーアプリケーションを見ているかもしれません。データが最終的にマージされたときにデータが上書きされないようにするために、GUID列が導入されました。

これは、たとえば、スタッフがラップトップにプログラムのコピーを持っていて、信頼できるインターネット接続なしでリモートで作業していたアプリケーションでこれを目にしました。そのため、すべての請求書などは顧客IDではなくGUIDにリンクされ、後ですべてのデータを1つのデータベースにマージすることができ、間違った方法で相互にリンクされるリスクを冒すことはありません。

ステートメントでは、一意の識別子で十分であるはずだというのは正しいですが、複数のデータベースを同時に実行した場合にどうなるかを考えてください。たとえば、5人の顧客がそれぞれ顧客ID4を持つことになります。推測すると、これが元のデザイナーがこのルートを選んだ理由だと思います。

于 2012-05-08T07:04:37.217 に答える