我有一个eCommerce网站,我喜欢我的项目非常n层/松耦合/高度可扩展。
这个项目在MVC3中,一个域库、一个服务库和一个数据访问库(存储库模式)。
然而,我对大规模恒定业务规则的实现持谨慎态度,比如临时全店折扣,以及将/应该设置的最低保证金。
发布于 2012-05-15 20:09:45
在我看来,任何处理数据允许状态的业务规则都应该在数据库中强制执行。这包括有效的单个值以及值之间的有效关系。当您进入流程验证时,应该将其移动到处理流程的层。例如,是否允许一个特定的状态转换到另一个特定的状态可能不属于数据库,但可能属于数据库的下一层。
SQL中可用的各种约束以及数据库触发器都有助于执行有关允许状态的规则。如果验证涉及多个行或表,您可能需要考虑事务隔离级别和/或显式锁定才能正确执行验证,而这些都是数据库特性。
https://stackoverflow.com/questions/10595971
复制相似问题