2013-11-01 24 views
0

我的Customers表當前具有唯一標識字段,稱爲CustomerCode如何在同一字段中允許自動生成和用戶生成的唯一標識

當新客戶被添加到表中時,我希望CustomerCode字段自動生成標識。這很容易實現。

但是,用戶可能已經擁有來自先前應用程序或手動記錄保存系統的具有唯一身份的客戶列表。他們希望將這些客戶導入到這張新表中,並保留其以前的唯一身份,如CustomerCode。 CustomerCodes是字母數字例如CUS0157999Z

這是否超出了數據庫的角色?相反,我需要一個前端應用程序來自動生成一個不存在的唯一CustomerCode?

新系統和舊系統必須協同運行,因此他們將每天導入客戶到新的Customer表。

+1

「用戶生成」和「唯一」通常是互斥的。 – geomagas

+0

您的客戶代碼是字母數字嗎? – bendataclear

+1

觸發器可用於此目的。如果沒有給出CustomerCode,那麼觸發器會生成一個。 –

回答

1

這裏有兩個不同的實體 - 客戶ID和客戶代碼。通常,客戶ID是作爲序號自動生成的,並用於在表格中的數據之間進行引用。通常,客戶代碼是根據一些規則生成的,並且具有有意義的價值,例如分層或分類等。

在你的情況下,最好不要混合使用和分開使用。因此請添加另一列,例如CustomerCodeImported。在這種情況下,您可以在應用程序中引用CustomerCode以及在引用傳統應用程序時使用引用代碼。如果您需要導入現有客戶,這更可靠 - 您可以簡單地更新CustomerCodeImported列的現有記錄設置值。

1

自動增量不必從1開始。導入客戶數據及其唯一的客戶代碼。在這之後,將自動增量設置爲比客戶端晚很多的值來區分舊的和新的值。

例如,如果客戶有超過10萬客戶,其ID爲100,000到150,000。您可以開始1,000,000的自動增量。

這當然規定獨特的id生成方法在舊系統和新系統中是一致的。