问题:
工资系统
之前咱们这里的工资系统,都是把工资条目的字段预先设计好的。我如今想把它改一下。做成通用的。
工资条目表:(条目编号,条目名称,条目性质(正负),条目运算公式,显示序号)
我的参数表:用于处理我的固定工资信息。如基本工资,休息日工资。这些固定字段从工资条目表中由用户选择后生成这张表。
工资数据表:保存我的每个月出勤等工资信息。
历史表:保存历史数据。
但以为因为不肯定条目内容,而用户通常都要求条目横列,涉及到界面上的处理。而不肯定横列的字段内容,写sql语句时都要用动态的。你们帮忙提个建议。
我的解决方案:
1:在工资条库中存在的字段名只是A01,A02,A03。。。之类的代码,而后另外定义一个对照表。
2:以为这个问题能够参考role和user的关系设计。
一、创建一个工资类别的表,用来存放工资类别代码、说明等等
create table salary_type (type_id, type_name,..);
二、创建两个工资结构主从表,用来存放工资结构,
create table salary_structure_head(structure_id, description,...);
create table salary_structure_line(structure_id, line_no, sub_structure_id,...);
其中,structure_id是一个惟一主键,用来表示一个工资结构,该工资结构能够指向某个具体雇员(至关于USER概念),也能够是一个模版(至关于ROLE概念),sub_structure_id能够指向某个特定的工资类别,也能够指向某个模版代码。这样创建必定数量的模版之后,一般能够很方便的为大部分雇员指定模版,若是还有其余的工资类型,能够再个别加入。
三、创建实际工资表,用来存储实际的工资明细
create table salary (emp_no, due_date_from, due_date_to, type_id, amount);
至于条目横列,那属于旋转表的功能,在不一样的数据库中有不一样的处理方法,原理基本是同样的,经过存储过程生成临时表或者动态查询语句来处理。
你们有什么好的解决方案可否回个消息哦,期盼。。。