对业务规则使用检查约束是否合适?

Pun*_*nit 7 sql sql-server business-logic sql-server-2005 constraints

目前我们正在使用检查约束来实现业务规则,但我想知道是否应该在SQL或业务逻辑层(C#)中实现业务规则.我在网上搜索过,发现检查约束很好用.

如果有人知道有关它的详细信息,请告诉我.还有一件事是,可以使用移动应用程序以及使用Web应用程序将数据泵入我的数据库.

mar*_*c_s 5

是的,这很好!

您应该始终在应用程序代码中(在业务层中)检查业务规则,但是如果可能的话也在数据库中检查.

为什么?想象一下,有人设法在不使用您的应用程序的情况下向您的数据库提交一些数据 - 如果您在应用程序中进行检查,则不会应用这些检查.

如果您也对数据库进行了检查,则可以确保数据库中的数据至少符合可以在SQL CHECK CONSTRAINTS中制定的那些简单检查.

绝对使用那些!您需要尝试尽可能高地保持数据质量 - 在数据库上添加参照完整性,检查约束和唯一约束等等可以帮助您实现这一点.

不要依赖于你的应用程序单独!

  • 它可能花费的任何表现都是很好的投资!不 - 我不认为它应该导致维护问题 - 无论如何,任何机会基本上都应该从数据库级别开始. (2认同)

OMG*_*ies 5

是的,检查约束是业务规则的有效工具.

但是,您确定需要使用检查约束,还是使用具有外键关系的支持表?如果您发现自己在不同的地方定义了类似的检查约束 - 答案是肯定的,这绝对应该是一个支持表.

数据完整性是关键; 如果应用程序被规避,那么允许某人存储不符合业务规则的内容的系统没有多大价值.如果逻辑在数据库中,原始应用程序在C#中,并且高层决定市场需要Java/Ruby/Python/etc版本,它也会使生活变得更容易.