我的困惑是这样的
困惑1:
假定有个业务逻辑,是更新数据库表里某一行数据的一个字段上的值(只是一个抽象的例子,业务逻辑可能会稍微复杂一些)
这个业务逻辑,可以通过 数据库对象:存储过程、内嵌函数、触发器  来实现
同样这个逻辑也可以在javabean中实现 
事务的ACID当然可以在存储过程中控制,也可以在javabean中做控制     我很困惑
那在哪个层面实现更加的合理呢 数据库层还是应用程序层——对应数据库服务器及web服务器,依据是什么?困惑2:
数据库在开发时有一个3级模式两级映射,其中外模式对应视图,实现逻辑独立性。
可是在web架构中,有个MVC的模式,其中有一部分也是用于实现逻辑独立性的,那到底这个放在数据库层用视图来实现,还是就在M中实现逻辑独立性     我很困惑
困惑3:
怎么好像多数软件项目开发不用视图,为什么不考虑其逻辑独立性呢??当然用存储过程也可以实现逻辑独立性,但是总觉得没有视图来的方便直接。

解决方案 »

  1.   

    其实LZ的这几个困惑是同一个问题。 
    方法有多种,关键看使用的目的。 如果是卖钱的话,如果是单卖程序,那就可以不用针对数据库侧做更多的考虑。 
    如果是前后都一起卖,就会在数据库侧多做考虑,这样前台使用上变化就可以更多一些。 当然卖的钱也可以更多。 基本上没有完全依照理论模式建立的程序。因为那样转换出来的效益比较低。HOHO
     
    参考.