c#和数据库问题,那种好一点.

poloyzhang 2010-06-09 09:47:48
目前做一个练习,工资管理的.
数据库中 应发工资=基本工资+技术补贴+岗位补贴, 实发工资=应发工资-扣款1-医保
这些是建立数据库的触发器自动更新应发工资和实发工资 好一些. 还是直接c#写好代码计算后updat 数据库 好一些?

还是有其它更好的广场?
...全文
257 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
lzsh0622 2010-06-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 poloyzhang 的回复:]
以上种种都是由应发工资为基数计算出来的, 应发工资又等于之前各工资之类的和. 是在c#中计算还是数据库表中设计好? 能否说的详细一点呢?
[/Quote]

(1)考虑一些系数以后可能会调整,把计算公式存库具有灵活性。
(2)数据记录大时,计算过程需要一定时间,那就一次完成,把结果存库。避免以后显示/打印都要重复计算。
jxncncdx 2010-06-09
  • 打赏
  • 举报
回复
学习学习!
dyufei 2010-06-09
  • 打赏
  • 举报
回复
设计表时使用计算列 应该是最佳的选择
qq497525725 2010-06-09
  • 打赏
  • 举报
回复
参考:
DataColumn.Expression 属性

用sql也可以,但是sql是在查询那一刻执行的计算,后续如果其他几个字段变了,值必须重新查询一次,所以建议用计算列。实现。
poloyzhang 2010-06-09
  • 打赏
  • 举报
回复
1.基本:
基本工资+岗位补贴+级别工资+全勤奖+其它补贴
2.加班:
平时加班金额+休息日加班金额+假日加班金额
3.病事假:
病假金额 + 事假金额
4.其它附加的
补发/产假/其它扣款/迟到/扣住宿费/缺勤
补发+产假-其它扣款-迟到-扣住宿费-缺勤 = 其它附加合计值

5.保险类
养老+失业+基本医疗+大病医疗+公积金+补缴社保费+应交税金.

计算方法:
应发工资=基本+加班+病事假(是负值)+其它附加的(可能是正负值)
实发工资=基本+考勤(加班+病事假+其它附加)+保险类+个税

注:
加班和病事假,其它附加由考勤表统计得来
保险类由保险表统计得来
个税由个税表统计得来
其它:
不满月工资的计算
捷哥1999 2010-06-09
  • 打赏
  • 举报
回复
参考:
DataColumn.Expression 属性

用sql也可以,但是sql是在查询那一刻执行的计算,后续如果其他几个字段变了,值必须重新查询一次,所以建议用计算列。实现。
x58099856 2010-06-09
  • 打赏
  • 举报
回复
看你做的练习的是侧重哪方面的,不在同一个表的情况下,建立触发器比较好。如果是侧重程序的联系,就都用代码编吧
-小蕾- 2010-06-09
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 computerfox 的回复:]
数据库中 应发工资=基本工资+技术补贴+岗位补贴, 实发工资=应发工资-扣款1-医保

这么简单的,不要用触发器了,可以用计算字段来实现。

就是,上面的应发工资和 实发工资都不用存储在数据库中,只要存储基本工资+技术补贴+岗位补贴还有扣款1-医保,那两个字段,再读取数据库时,计算就好!
[/Quote]
顶顶顶!
捷哥1999 2010-06-09
  • 打赏
  • 举报
回复
数据库中 应发工资=基本工资+技术补贴+岗位补贴, 实发工资=应发工资-扣款1-医保

这么简单的,不要用触发器了,可以用计算字段来实现。

就是,上面的应发工资和 实发工资都不用存储在数据库中,只要存储基本工资+技术补贴+岗位补贴还有扣款1-医保,那两个字段,再读取数据库时,计算就好!
poloyzhang 2010-06-09
  • 打赏
  • 举报
回复
工资所有的计算是在同一个表里, 另外需要的一个功能就是,如果删除员工基本信息,那么工资表内的信息也会自动删除.这个应该是建立触发器了,
tashiwoweiyi 2010-06-09
  • 打赏
  • 举报
回复
poloyzhang 2010-06-09
  • 打赏
  • 举报
回复
设计表时如何设计? 另外还有 医保=应发工资* 5%, 还有个税有个阶段性的计算(2000)
应纳税所得额 - 扣除标准
  1、不超过500元的,税率5%,速算扣除数为0; 
  2、超过500元至2000元的部分,税率10%,速算扣除数为25
  3、超过2000元至5000元的部分,税率15 %,速算扣除数为125
  4、超过5000元至20000元的部分,税率20 %,速算扣除数为375
  5、超过20000元至40000元的部分,税率25%,速算扣除数为1375
  6、超过40000元至60000元的部分,税率30%,速算扣除数为3375
  7、超过60000元至80000元的部分,税率35%,速算扣除数为6375
  8、超过80000元至100000元的部分,税率40%,速算扣除数为10375
  9、超过100000元的部分,税率45%,速算扣除数为15375

----------------------------------
以上种种都是由应发工资为基数计算出来的, 应发工资又等于之前各工资之类的和. 是在c#中计算还是数据库表中设计好? 能否说的详细一点呢?
iwxiaot 2010-06-09
  • 打赏
  • 举报
回复
一个表里就用计算列,不在一个表里就用触发器
guyehanxinlei 2010-06-09
  • 打赏
  • 举报
回复
设计表时使用计算列即可
poloyzhang 2010-06-09
  • 打赏
  • 举报
回复
此贴已结,请看新贴,地址如下
http://topic.csdn.net/u/20100609/18/303b0f18-e7ea-47df-9287-c37319408e4c.html?60419
yazzyazz 2010-06-09
  • 打赏
  • 举报
回复
学习学习了
smthgdin_020 2010-06-09
  • 打赏
  • 举报
回复
触发器是有条件的,简单的说就是增删改,如果只是查询怎么触发?呵呵~~~
而且触发器一般要慎用,可能有潜在问题。


[Quote=引用楼主 poloyzhang 的回复:]
目前做一个练习,工资管理的.
数据库中 应发工资=基本工资+技术补贴+岗位补贴, 实发工资=应发工资-扣款1-医保
这些是建立数据库的触发器自动更新应发工资和实发工资 好一些. 还是直接c#写好代码计算后updat 数据库 好一些?

还是有其它更好的广场?
[/Quote]
smthgdin_020 2010-06-09
  • 打赏
  • 举报
回复
也可以使用视图。
smthgdin_020 2010-06-09
  • 打赏
  • 举报
回复
这样的逻辑的话,应该写到代码里面好些。把这些逻辑集中封装在一起便于以后维护,虽然部分原有的计算变更的频率低,但是以后还有其他计算加入,也可能有表结构调整,如果依赖计算列以后会比较麻烦。


[Quote=引用 10 楼 poloyzhang 的回复:]
1.基本:
基本工资+岗位补贴+级别工资+全勤奖+其它补贴
2.加班:
平时加班金额+休息日加班金额+假日加班金额
3.病事假:
病假金额 + 事假金额
4.其它附加的
补发/产假/其它扣款/迟到/扣住宿费/缺勤
补发+产假-其它扣款-迟到-扣住宿费-缺勤 = 其它附加合计值

5.保险类
养老+失业+基本医疗+大病医疗+公积金+补缴社保费+应交税金.

计算方法:……
[/Quote]
艾墨 2010-06-09
  • 打赏
  • 举报
回复
像這樣的問題 用觸發器絕對來的準確
加载更多回复(8)

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧