Database-Design

定義主鍵:客戶編號僅在一個國家/地區是唯一的,但可能在不同國家/地區重複

  • January 31, 2019

我面臨以下問題:

我有一個包含客戶資訊的表格,例如客戶編號,即customerID設置為主鍵,除了一些其他數據外,還有一個國家程式碼形式的國家值,countryID

但是,其他國家的客戶數據也應導入此表。儘管客戶編號在一個國家/地區內是唯一的,但它們不是跨國的。不應出於組織原因更改客戶編號。

如何為該表中的每個客戶仍然確保一個密鑰?

我將使用 countryID、CustomerID 作為您的唯一鍵,因為您已聲明您將擁有每個國家/地區的唯一客戶 ID。我將從 countryID 開始,因為它在系統中是唯一的,您可以添加 customerID 以獲得每個客戶的唯一密鑰。

可以有一個由多列組成的主鍵。這需要單獨編寫約束,作為表約束:

CREATE TABLE customers (
   countryID   INTEGER,
   customerID  INTEGER,
   [...],
   PRIMARY KEY (countryID, customerID)
);

引用自:https://dba.stackexchange.com/questions/228395