数据库层中的业务逻辑

M.R*_*.R. 1 database sql-server oracle business-logic

我讨厌再次提出"数据库与代码中的业务逻辑"的经典问题,但我需要一些具体的理由来说服开发人员的老团队,代码中的业务逻辑更好,因为它更易于维护,最重要的是.我以前在DB中有很多业务逻辑,因为我认为它是单点访问.如果我是唯一一个改变它的人,那么维护很容易.根据我的经验,当项目变得更大和更复杂时,问题就出现了.DB存储过程的源控制不像新IDE那样先进,编辑也不是.代码中的业务逻辑可以比DB更好地扩展,这是我在最近的经验中发现的.

所以,只是搜索stackoverflow,我发现了与其尊敬的成员相反的哲学:

https://stackoverflow.com/search?q=business+logic+in+database

我知道任何情况都不是绝对的,但是对于一个给定的asp.net解决方案,它将使用sql server或oracle,对于一个不是特别高的流量站点,为什么我会把逻辑放在DB中呢?

Cad*_*oux 6

取决于你所谓的业务.

数据库应该按预期执行.

如果数据的使用者和提供者希望数据库做出某些保证,则需要在数据库中完成.

有些人不在其数据库中使用参照完整性,并期望系统的其他部分对其进行管理.有些人直接访问数据库中的表.

我觉得从系统和组件的角度来看,数据库就像任何其他服务或类/对象一样.它需要保护其周边,隐藏其实施细节并提供完整性保证,从低级完整性到一定级别,这可被视为"业务".

执行此操作的好方法是引用完整性,存储过程,触发器(必要时),视图,隐藏基表等等.