我想創建一個查找表'orderstatus'。即在下面,爲了說明這一點,將在數據倉庫中使用。如果需要的話,我需要通過OrderStatus來獲取INT(如果我創建一個)以用於其他地方。例如,在事實表中,我會將int存儲在事實表中以鏈接到查找表。查找表上的SQL主鍵或唯一約束?
+------------------------+------------------+
| OrderStatus | ConnectionStatus |
+------------------------+------------------+
| CLOSED | APPROVE |
+------------------------+------------------+
| COMPLETED | APPROVE |
+------------------------+------------------+
| FULFILLED | APPROVE |
+------------------------+------------------+
| CANCELLED | CLOSED |
+------------------------+------------------+
| DECLINED | CLOSED |
+------------------------+------------------+
| AVS_CHECK_SYSTEM_ERROR | CLOSED |
+------------------------+------------------+
關於主鍵/唯一鍵的最佳實踐是什麼?我應該創建一個OrderStatusKey INT作爲PrimaryKey與身份?或者在訂單狀態(唯一)上創建唯一約束?謝謝。
如果'OrderStatus'列將在許多表中引用,那麼我將使用帶有主鍵的'Identity'列並將其引用到其他表中。檢查這個問題以及http://stackoverflow.com/questions/3162202/sql-primary-key-integer-vs-varchar –
你應該給這個讀。 http://www.agiledata.org/essays/keys.html。 – JamieSee