处理费、最低存款等大规模业务规则在哪里



>我有一个电子商务网站,我喜欢我的项目非常n层/松散耦合/高度可扩展。

此项目位于 MVC 3 中,即域库、服务库和数据访问库(存储库模式)。

但是,我对大规模恒定业务规则的实施持谨慎态度,例如临时全店折扣,以及将/应该收取最低存款费用。

在我看来,任何处理数据允许状态的业务规则都应该在数据库中强制执行。 这包括有效的单个值以及值之间的有效关系。 当您进行流程验证时,应将其移动到处理流程的层。 例如,是否允许特定状态转换到另一个特定状态可能不属于数据库,但可能属于数据库的下一层。

SQL 中可用的各种约束以及数据库触发器适用于强制实施有关允许状态的规则。 如果验证涉及多行或多表,您可能需要担心事务隔离级别和/或显式锁定才能使其正确,这些都是数据库功能。

最新更新