从业务逻辑的角度来看,在业务列中使用唯一索引是否正确?

时间:2014-02-21 06:38:06

标签: database business-logic-layer unique-index

我的问题不是从数据库的角度来制定的,而是来自企业的优势 逻辑观点。

使用示例表CreditCard和列CreditCardNumber。我可以为CreditCardNumber分配一个唯一的索引,因为没有可能有两个相同的CreditCardNumber。但是,这不是一个商业规则吗?那么我应该在数据库中允许类似的CreditCardNumber,并检查自己在业务逻辑层中的唯一性吗?

我说错了吗?或者在这种情况下使用唯一索引有哪些优势?或者两种情况都是正确的,我可以选择任何人吗?

感谢。

1 个答案:

答案 0 :(得分:0)

应在应用程序层和数据库层执行唯一的信用卡号(或任何其他类似规则)。

您在应用程序层测试唯一性,以便向用户提供反馈。例如,职员正在输入新的信用卡号码。您希望应用程序检查数字是否已存在于数据库中,如果是,请提醒用户以便更正错误。

您希望在数据库级别强制使用唯一编号,以确保不会为必须唯一的列创建重复条目。