我现在一个很复杂的业务数据。要从5个表里取5个值,然后进行计算。然后往两个表里插入这个计算后的记录。我现在想求解:我的数据层写了5个取值方法。业务层对应5个对象的值。然后处理计算业务的时候。我在想:这样要与数据库交付很多次。业务层与数据库没有部署在一台服务器上。
所以我一直在想:程序的可维护性:现在的做法
程序的性能:我可以把这5个取值和插入炒作放到存储过程里面。(但是这样是不是相当把业务封装到数据库中了)。
可维护性就降低了。特别难调试。我一直很矛盾:
我现在写在程序中。。计算的时候资源消耗应该在应用服务器上。
而写在存储过程中。。计算的时候资源消耗应该在数据服务器上。有时后我一直对于这两种方式很纠结。
如果我些在存储过程中。那我程序中还有必要面向对象吗????ORM意义何在?面向对象的意义何在??
如果我在程序中处理,这样相当于我取5个值,插入两条记录,这样与数据库的交互就多了。性能也不好。
很纠结,很矛盾。
望高手指教!
希望多给我讲解讲解。我打这么多字也幸苦。谢谢大家。

解决方案 »

  1.   

    如果需要原子操作,则放在数据库做。如果“面向对象”使得工作更加困难,那么坚持使用它也可能是一种“反模式”。
      

  2.   

    我觉得这种情况,楼主完全可以放到存储过程中做,否则5次请求数据库不是好的方法。
    对于某些纯数据的操作,对他们进行对象化是没有什么意义的,面向对象绝不是单纯的建模,
    楼主在自己对象层上抽象出来一个计算的方法很容易啊。