让我们假设应用程序在模型/表示层中具有所有必要的业务规则并且它们工作正常。我的问题是冗余业务规则(即两个日期的跨度不能与任何其他现有跨度重叠)是否应该在像 SQL Server 这样的存储库中使用。
在 SQL Server 中添加强制执行此规则的约束是否有必要/有益?一方面,它可以防止任何人(包括 DBA)在绕过应用程序时无意中破坏业务规则。此外,我们已经通过主键和外键在存储库中拥有一些形式的业务规则。另一方面,重复的规则需要额外的时间来开发和维护。
这个问题跨越了许多不同的技术,所以我故意保持标签通用。