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

关于工资系统的问题请教,补发工资在数据库结构上如何处理?
关于工资系统的问题请教
-----------
我现在的设计思路是每位员工在工资表中,每个月每人一条记录,
结构是:月份,编号,姓名,工资项目一,工资项目二,...,实发工资.
主键是:月份+编号
有一个问题如何处理.
2007/02   月工资已经做好了,也报到银行了,现金也取来了,发完了.
可是年底有些职工认为工资低了,公司决定再补发一次工资.
可是我的工资如何做呀.
1.我已经说了,我的工资表结构主键是:月份+员工编号,
也就是说每位员工在一个月中只能有一条记录呀.我不知加二条.(请问工资表中,一位员工每月可以有多条记录吗?),我只能重新将补发的工资累加到2007/02月,可是最难办的是扣税问题,比如这次发1000多元.本次发放还要将税一同扣出来.
2.如果不想覆盖已经生成的200702月工资表,那又该如何处理呢?
我以前没搞过的工资的系统,一点思路也没有,向大家请教.


------解决方案--------------------
加个工资发放日期,发放标志不行吗?
------解决方案--------------------
为什么不能有两条记录呢?然后做个视图求和
------解决方案--------------------
多条记录怎么不行?用标志标出来就行了,加两个字段“发放日期”,“发放标志”(普发,补发)
------解决方案--------------------
很简单 在建个 是补发工资表 这样不就行了
------解决方案--------------------
加两个字段“发放日期”,“发放标志”(普发,补发)

这样很好!!!!
------解决方案--------------------
最好加一个 "员工id ",可能有重名的人
------解决方案--------------------
用多帐套解决吗,现在工资系统都支持的,你就是要在你的表里加个字段,就是一个月员工可以领两份工资,酒店里的员工都是这样的。

或者你重新做个奖金表,作为奖金发放
------解决方案--------------------
加个发放具体时间就可以了 统计的话 可以做个视图
------解决方案--------------------
一开始的主键好像不应该放在 编号和员工上 应该建个identity 便于索引
员工编号应该用一个列触发器 这样以后想加什么都会很方便
触发器里判断如果同一个月编号出现两次了 rollback 这样 以后想要像你现在这样加的话可以禁止触发器就可以了 个人意见

要是在你现在表上加入的话 还是用个别的员工编号 把两个编号联系在一起好些
------解决方案--------------------
象楼上说的 主键还是放在identity 列上 比较灵活
------解决方案--------------------
十分不建议这样建主键 还是独立的好 要是为了考虑查询速度 可以给 月份+编号+批次 做个索引
------解决方案--------------------
放到下个月一起发喽
------解决方案--------------------
不是非常清楚你的需求,所以如果有不对的地方请原谅。

我也觉得你的主键设置似乎可以改进,你选的主键(月份+编号),这个是在业务中是具有实际意义的主键,那么在它可能受到业务逻辑的约束,比如你现在碰到的问题,如果出现某一个月的工资补发,那么可能由于主键的重复不能插入记录。

我觉得你的主键还是独立出来比较好,不要具有实际的业务意义。^_^
------解决方案--------------------
发放工资的明细表,加上ISBF(是否补发),工资年月,实发际年月
------解决方案--------------------
我以前的处理方式是新增一种发款方式叫“其它发款”。
当然前提是客户得同意。
------解决方案--------------------
你写的需求不太明确,是要补发1,2月份的,还是补去年的
从业务上讲,已经报帐是不能修改的,只能在下一月份加项补发,
另外你的工资表应该是动态列的,所以加一个补发列没有什么问题。
我觉得主键没有什么问题,为什么要换?一人一月一条记录是很正常的,我见过的大型人力资源系统都是这样的。
------解决方案--------------------
第一:肯定是一个月可以有多条记录,不然哪周薪的,一个月发多次工资的怎么解决。
建议加一个字段:发放次数。
第二:补发全年一次性的工资,还有一个计税的问题,这个税不能和当月的累计来算,不然交才多,应发像发年终奖一样,除12的税率来算。如果就当是当月发放,那要和当月工常发放的合并起来扣税,并且要把正常发放时已经交的税扣掉。


------解决方案--------------------
补充:上面老兄说得对,正常发放的工资已经报帐了。就不能再去修攺了。
------解决方案--------------------
主键有问题,业务逻辑也受限了,强烈建议主键改为:
发放年月+员工编码+发放次数

这样一个月可以发放多次工资
------解决方案--------------------
说实话 一般习惯性的加个identity这样可以把填充因子家满 索引都可以用别的列键非聚集索引键 这样可以预防突发事件 主键容易定死一些关系 不建议使用 现在很多设计这种工资表这样用虽然没什么错 但是有错的时候想改也改不了 比如你现在的情况