私の現在のスキーマは次のようになります。
ID | DisplayVal
-- ----------
1 1-H-3
2 2-H-3
3 3-J-4
上記のID
field は、IDENTITY INT
end user としても使用されるフィールドaccount Id
です。DisplayVal
画面に表示されるものです。
新しいクライアントは独自のAccount Id
値を提供しましたが、それらはであるため、そのままフィールドalpha-numeric
に入ることができません。IDENTITY
ここに私のシナリオがあります: 最高のmaintainability
、end user experience
、magnitude and impact of changes
およびを提供するシナリオを探していますtesting/QA impact
。
私の最初のシナリオは、すべてのタイプの に対応するAccount Number
列を追加することでした。次のようになります。VARCHAR(x)
Account Numbers
ID | DisplayVal | AccountNumber
-- ---------- -------------
1 1-H-3 1
2 2-H-3 2
3 3-J-4 3
4 h389 h389
5 h-400-x h400
上記では、最初のクライアントの場合、seeded Identity
がAccount Id
にコピーされAccount Number
ますが、他のクライアントの場合は がseeded Identity
作成されますが、それらAccount Number
は異なり、 と一致する場合と一致しない場合がありDisplay Value
ます。
私の 2 番目のシナリオは、列を追加せずAccount Number
、IDENTITY INSERT
. クライアントがAccount Number
.
3 番目のシナリオは、基本的に、新しいものを のままにしてAccount Number
、legacy Account Number
すべての新しいレコードに対して新しい ID 値を作成することでした。これには、エンド ユーザーが新しい に慣れる必要がありますAccount Number
。おそらく最も簡単ですが、欠点があるかどうかはわかりません。
この場合にうまく機能する別のシナリオがわかっている場合は、お知らせください。