0

Customersのテーブルには現在、 という一意の ID フィールドがありCustomerCodeます。

新しい顧客がテーブルに追加されたときに、CustomerCodeフィールドで ID を自動生成する必要があります。これは簡単に達成できます。

ただし、ユーザーは、以前のアプリケーションまたは手動の記録保持システムからの一意の ID を持つ顧客のリストを既に持っている場合があります。これらの顧客をこの新しいテーブルにインポートし、以前の一意の ID を として保持したいと考えていますCustomerCode。CustomerCodes は、CUS0157999Z などの英数字です。

これを行うのはデータベースの役割を超えていますか? 代わりに、まだ存在しない一意の CustomerCode を自動生成するフロントエンド アプリケーションが必要でしょうか?

新しいシステムと古いシステムは連携して実行する必要があるため、顧客Customerは毎日新しいテーブルにインポートされます。

4

2 に答える 2

1

ここには、顧客 ID と顧客コードという 2 つの異なるエンティティがあります。通常、Customer ID は連番として自動的に生成され、テーブル内のデータ間の参照に使用されます。通常、顧客コードはいくつかのルールに従って生成され、意味のある値 (階層的または分類的など) を持っています。

あなたの場合、それらを混ぜて別々に使用しない方がよいでしょう。したがって、別の列を追加しますCustomerCodeImported。この場合、アプリケーション内の参照CustomerCodeと、レガシー アプリケーションを参照するときに使用する参照コードがあります。これは、既存の顧客をインポートする必要がある場合に、より信頼性が高くなりCustomerCodeImportedます。列の既存のレコード設定値を単純に更新できます。

于 2013-11-01T20:54:15.593 に答える
1

自動インクリメントは 1 から開始する必要はありません。クライアントのデータを固有の顧客コードと共にインポートします。この後、古いものと新しいものを区別するために、クライアントの値よりもかなり後の値で開始するように自動インクリメントを設定します。

たとえば、クライアントに 100,000 から 150,000 の ID を持つ 10 万人を超える顧客がいるとします。自動インクリメントは 1,000,000 で開始できます。

これはもちろん、一意の ID 生成方法が古いシステムと新しいシステムで一貫していることを前提としています。

于 2013-11-01T12:43:48.543 に答える