2014-02-21 16 views
0

我的問題不是從數據庫的角度來看,而是從業務邏輯的角度來看優勢。從業務邏輯的角度來看,在業務專欄中使用唯一索引是否正確?

用作示例表CreditCard和列CreditCardNumber。我可以爲CreditCardNumber分配一個唯一索引,因爲不可能有兩個相同的CreditCardNumber。但是,這不是一個商業規則嗎?那麼我應該在數據庫中允許類似的CreditCardNumber,並檢查自己業務邏輯層中的唯一性嗎?

我正確嗎?或者在這種情況下使用唯一索引有哪些優勢?或者這兩種情況都是正確的,我可以選擇任何人?

謝謝。

回答

0

應該在應用層和數據庫層都執行一個唯一的信用卡號(或任何其他類似的規則)。

您在應用程序層測試唯一性,以便您可以向用戶提供反饋。例如,店員正在輸入新的信用卡號碼。您希望應用程序檢查數字是否已經存在於數據庫中,如果是,請提醒用戶,以便他們能夠糾正錯誤。

您希望在數據庫級別強制使用唯一編號,以確保不會爲必須唯一的列創建重複條目。