一个数据库设计方案

问题:
 
工资系统  
  之前咱们这里的工资系统,都是把工资条目的字段预先设计好的。我如今想把它改一下。做成通用的。  
   
  工资条目表:(条目编号,条目名称,条目性质(正负),条目运算公式,显示序号)  
                       
  我的参数表:用于处理我的固定工资信息。如基本工资,休息日工资。这些固定字段从工资条目表中由用户选择后生成这张表。  
   
  工资数据表:保存我的每个月出勤等工资信息。  
   
  历史表:保存历史数据。  
   
  但以为因为不肯定条目内容,而用户通常都要求条目横列,涉及到界面上的处理。而不肯定横列的字段内容,写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);  
   
  至于条目横列,那属于旋转表的功能,在不一样的数据库中有不一样的处理方法,原理基本是同样的,经过存储过程生成临时表或者动态查询语句来处理。 
 
 
你们有什么好的解决方案可否回个消息哦,期盼。。。 
相关文章
相关标签/搜索