日期:2014-05-19  浏览次数:20400 次

这样的数据算法如何设计表结构较好。谢谢!
某一房产公司业务员的提成算法如下:
  业务额                                         提成比率
RMB   1.00     至   RMB   5   000                 5%
RMB   5001     至   RMB   10   000             10%
RMB   10001   至   RMB   20   000             15%
RMB   20001   至     以上                       20%

如果业务额为8000,那么提成为   5000*5%+(8000-5000)*10%=550
如果业务额为15000,那么提成为   5000*5%+5000*10%+(15000-10000)*15%=1500

表结构如何设计:
我的想法如下:
  stnum       ednum     per
  1               5000       5%
5001         10000       10%
10001       20000       15%
20001                       20%

另外一种是:
st1     per1     st2         per2       st3       per3         st4       per4  
5000     5%     10000       10%       20000     15%                       20%

不知大家的意思如何,谢谢!


------解决方案--------------------
用第一种方法,原因:方便好用,如果将来需要增加项目不必改数据结构,直接加记录就OK
------解决方案--------------------
第一种比较好,在读数据比较上要比第二种强得多;

不要在乎记录的条数;你那几条记录对表的性能影响几乎可以忽略不计[无论是查询还是运算]
------解决方案--------------------
第一种吧,很灵活,数据库不用变
------解决方案--------------------
普通的累进税率处理方法,最方便的方式是
业务额,提成比率,速算扣除数

计算方法 业务额×当前提成比率-速算扣除数
------解决方案--------------------
级数 全月应纳税所得额 税率% 速算扣除数(元)
1 不超过500元的 5 0
2 超过500元至2000元的部分 10 25 25=500*(10-5)%
3 超过2000元至5000元的部分 15 125 125=2000*(15-10)%+25
4 超过5000元至20000元的部分 20 375 375=5000*(20-15)%+125
5 超过20000元至40000元的部分 25 1375
6 超过40000元至60000元的部分 30 3375
7 超过60000元至80000元的部分 35 6375
8 超过80000元至100000元的部分 40 10375
9 超过100000元的部分 45 15375

后面就是速算扣除数的算法