9
数据库应实现多少业务逻辑?
我参与过一些项目,其中大多数业务逻辑是在数据库上实现的(主要是通过存储过程)。另一方面,我从其他程序员那里听说这是一个不好的做法(“那里有数据库来存储数据。其余的则由应用程序来完成”)。 通常,哪种方法更好? 我能想到的在数据库中实现业务逻辑的优点是: 集中业务逻辑; 应用程序类型,编程语言,操作系统等的独立性; 数据库不太容易进行技术移植或大型重构(AFAIK); 无需重新进行应用程序技术迁移(例如:.NET到Java,Perl到Python等)。 缺点: 由于缺乏面向应用程序的语言所提供的库和语言构造,SQL对于业务逻辑编程而言效率较低,并且更为复杂。 通过库更难(如果可能的话)重用代码; 生产效率较低的IDE。 注意:我正在谈论的数据库是关系型,流行的数据库,例如SQL Server,Oracle,MySql等。 谢谢!