你所有的SQL都写在程序中,当然功能可以实现,但是如果客户要求查询更改了,你是不是要重新编译程序呢?而如果这些都是在视图中,(当然还有其他地方,比如存储过程),我们的程序只需要在那边躺着睡觉了,该数据库中的东西就OK了,并且大家可以通用,这就是类似于函数的功能啊!------------------------我这晕了!

解决方案 »

  1.   

    applexml(Andy) ( ) 我做过的有好几百个表的项目多了,
    "但是如果客户要求查询更改了,你是不是要重新编译程序呢?"
    业务逻辑做在中间层, 做在数据库里不符合多层的思想吧
      

  2.   

    假设你的一个表中有“成本”字段,你想让一个登录用户可以访问这个表中除成本以外其它内容,就需要视图了(此致有权访问用户此视图)。当然,现在很多程序员写的程序竟然对数据表不做保护,用户只要拿个查询分析器或者Access就能轻易地在客户端处理数据库。对于没有安全概念的程序员,上述理由等于白说。“业务逻辑做在中间层, 做在数据库里不符合多层的思想吧”对这个程序员来说,数据库就是一个保存数据的开放的、原始的、根本不为最终用户的高级查询要求服务而仅仅为应用程序保存最原始的数据。这是从技术出发而不是从应用出发的人常会有的“蔑视”应用当中的创意,死抠几个技术字眼不放的习惯。那么,最好使用30年以前的数据库系统,这样没几个用户懂得它,也就不会随便去“动”它,就能做到这种低档次了。SQL Server不适合这个程序员,因为他的功能太强大了。
      

  3.   

    1 用视图做安全规划是比较方便一点,但这不是视图的最主要用途吧,我感觉2 我们绝对不能指望用户对数据库的使用水平能象你一样高,我们的重要设计目标之一是让用户容易使用3实际上也是如此,我刚刚做的一个大项目(only coding 80人月),没有用用触发器,存储过程和视图,我想框架设计者不会不懂触发器,存储过程和视图吧.