关于工资系统的问题请教
-----------
我现在的设计思路是每位员工在工资表中,每个月每人一条记录,
结构是:月份,编号,姓名,工资项目一,工资项目二,...,实发工资.
主键是:月份+编号
有一个问题如何处理.
2007/02 月工资已经做好了,也报到银行了,现金也取来了,发完了.
可是年底有些职工认为工资低了,公司决定再补发一次工资.
可是我的工资如何做呀.
1.我已经说了,我的工资表结构主键是:月份+员工编号,
也就是说每位员工在一个月中只能有一条记录呀.我不知加二条.(请问工资表中,一位员工每月可以有多条记录吗?),我只能重新将补发的工资累加到2007/02月,可是最难办的是扣税问题,比如这次发1000多元.本次发放还要将税一同扣出来.
2.如果不想覆盖已经生成的200702月工资表,那又该如何处理呢?
我以前没搞过的工资的系统,一点思路也没有,向大家请教.
-----------
我现在的设计思路是每位员工在工资表中,每个月每人一条记录,
结构是:月份,编号,姓名,工资项目一,工资项目二,...,实发工资.
主键是:月份+编号
有一个问题如何处理.
2007/02 月工资已经做好了,也报到银行了,现金也取来了,发完了.
可是年底有些职工认为工资低了,公司决定再补发一次工资.
可是我的工资如何做呀.
1.我已经说了,我的工资表结构主键是:月份+员工编号,
也就是说每位员工在一个月中只能有一条记录呀.我不知加二条.(请问工资表中,一位员工每月可以有多条记录吗?),我只能重新将补发的工资累加到2007/02月,可是最难办的是扣税问题,比如这次发1000多元.本次发放还要将税一同扣出来.
2.如果不想覆盖已经生成的200702月工资表,那又该如何处理呢?
我以前没搞过的工资的系统,一点思路也没有,向大家请教.
--------------
谢谢,其实我说的员工编号就是员工id
员工编号应该用一个列触发器 这样以后想加什么都会很方便
触发器里判断如果同一个月编号出现两次了 rollback 这样 以后想要像你现在这样加的话可以禁止触发器就可以了 个人意见要是在你现在表上加入的话 还是用个别的员工编号 把两个编号联系在一起好些
我楼上的 加发放次数也看不出来前后差 不如更新一下 临时写个触发器
更新2月分的员工工资的时候自动把(要补发的钱)-总交税金-前面的税金
员工是M 工资是N M:N的关系 根据数据库系统的优化和设计理论
有必要增加一个新表 作为实现公司发薪水“联系关系”的实现M:1 的时候 可以把1的字段加入M的表中
M:N 的时候 需要在M和N中间增加表示关系的表表的主键是 M的主键 N的主键 加上限制条件 月份啦之类的大哥们 我是新人 自考的本科 你们也不能这么欺负我们新手啊时间长了会晕的 希望大家指正
以上论断取自 自考第四章 ”关系模式的规范化设计“
:
"关系模式的冗余和异常问题,规范化(函数依赖、码、范式、2NF、3NF、BCNF、多值依赖、4NF),数据依赖的公理系统,模式的分解"
工资项目表要存每一个项目的自定义描述,包含名称,显示次序,进位方式等等一系列数据
----这样做有几个好处
1.便于程序员维护
2.可以为客户提供自定义工资项目功能
3.为开发公式系统提供可能
4.为上报报表数据提供便利
-----------------------
另外 GHOSTPE999 我也是自考本科,看来你并没有做过项目,这里很多人《数据库原理》分数都很高。
向你提个建议:不要生搬硬套书中的理论,对你将来开发没好处,注意把基本原理和开发的实际结合起来,你以后如果完全按照书中的理论做,恐怕不会有几个成功的项目。
我就没有必要把8-9个字段长度的表全读入内存
我只要选择合乎需要的关系行数据
然后执行加法就可以不用把整个表全读入内存
然后选出符合的行数据
然后SELECT符合要求的行的字段 再加起来所以好处还是有的 性能上增强很多