您的位置:首页 > 数据库

一个数据库设计方案

2009-05-06 17:18 295 查看
问题:

工资系统
以前我们这里的工资系统,都是把工资条目的字段预先设计好的。我现在想把它改一下。作成通用的。

工资条目表:(条目编号,条目名称,条目性质(正负),条目运算公式,显示序号)

个人参数表:用于处理个人固定工资信息。如基本工资,休息日工资。这些固定字段从工资条目表中由用户选择后生成这张表。

工资数据表:保存个人每月出勤等工资信息。

历史表:保存历史数据。

但觉得由于不确定条目内容,而用户一般都要求条目横列,涉及到界面上的处理。而不确定横列的字段内容,写sql语句时都要用动态的。大家帮忙提个建议。

个人解决方案:

1:在工资条库中存在的字段名只是A01,A02,A03。。。之类的代码,然后另外定义一个对照表。

2:觉得这个问题可以参考role和user的关系设计。
1、建立一个工资类别的表,用来存放工资类别代码、说明等等
create table salary_type (type_id, type_name,..);
2、建立两个工资结构主从表,用来存放工资结构,
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可以指向某个特定的工资类别,也可以指向某个模版代码。这样建立一定数量的模版以后,通常可以很方便的为大部分雇员指定模版,如果还有其他的工资类型,可以再个别加入。
3、建立实际工资表,用来存储实际的工资明细
create table salary (emp_no, due_date_from, due_date_to, type_id, amount);

至于条目横列,那属于旋转表的功能,在不同的数据库中有不同的处理方法,原理基本是一样的,通过存储过程生成临时表或者动态查询语句来处理。

大家有什么好的解决方案能否回个消息哦,期盼。。。
本文出自 “刀尖上疯” 博客,请务必保留此出处http://lietou1986.blog.51cto.com/9356/155664
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐