多表查询可以如何优化 ?

简单来说,程序复杂了,SQL查询也很容易复杂起来,很可能到取数据会和4,5甚至更多表有关系,
这样不仅SQL会复杂,而且维护,调整,和其它处理都会比较复杂。
一般的优化方法就是优化 SQL, 不知道有没有其它更方便的办法?
我表达不怎么好,举个例子吧:
  假如我最终要的是一个用户列表:
   
  名字, 当前工资

  << < 1 2 3 > >>

  1, 有一个用户表,user ( id,name)
  2, 有基本工资表 , salary (user_id ,date,price)

  当前工资是只本月1号到目前的工资,所以为了计算当前工资,需要从 工资表 中计算迄今为止的工资总额,
  子查询就可以完成。 但是假如更复杂些, 工资分为 基本工资,奖金,罚款,加班报酬,报销 ,每个表都和 工资表 类似结构, 另外再增加些变态规则:
  1, 基本工资 > 平均值 x2 的部分没收
  2, 报销不能超过 基本工资+奖金+加班报酬 的 20%
  3, 税收需要按照基本工资的级别来扣除 ( <1000 ,10%, < 2000 14%, < 3000 %23 >= 3000 30%)
  4, 税收还要扣除奖金的 10% 
  5, 按最近工资倒序排列
  6, 只列出基本工资 在 2000 - 5000 的人
  .
  .

  相信这样再单纯用一条语句就不太可能了,但是要分多条语句的话,还要考虑分页,
在这类十分复杂的情况下,有哪些办法可以优化呢, (不包括硬件,架构。。。,仅考虑 SQL 和程序)

作者: black_eye_   发布时间: 2011-05-19

有多少员工? 估计会有多大的数据量? 似乎一般来说工资数据库 效率 很少去考虑的,因为表中记录不会有太多。

作者: ACMAIN_CHM   发布时间: 2011-05-19

逻辑是挺复杂,硬写就可以 ,数据量不会大

作者: rucypli   发布时间: 2011-05-19

工资系统做过,在表中保存计算公式,再循环替换表中相应字段,你指的优化是指什么方面?

作者: WWWWA   发布时间: 2011-05-19

从数据库中取数据的时候,有时候需要一些额外的逻辑判断,这些判断虽然可以用SQL完成,
但是会语句会比较长,也比较复杂,
我意思是是否可以通过程序上做一定处理,简化最终的SQL 查询?

作者: black_eye_   发布时间: 2011-05-19