一個數據庫設計方案

問題:
 
工資系統  
  以前我們這裏的工資系統,都是把工資條目的字段預先設計好的。我現在想把它改一下。作成通用的。  
   
  工資條目表:(條目編號,條目名稱,條目性質(正負),條目運算公式,顯示序號)  
                       
  個人參數表:用於處理個人固定工資信息。如基本工資,休息日工資。這些固定字段從工資條目表中由用戶選擇後生成這張表。  
   
  工資數據表:保存個人每月出勤等工資信息。  
   
  歷史表:保存歷史數據。  
   
  但覺得由於不確定條目內容,而用戶一般都要求條目橫列,涉及到界面上的處理。而不確定橫列的字段內容,寫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);  
   
  至於條目橫列,那屬於旋轉表的功能,在不同的數據庫中有不同的處理方法,原理基本是一樣的,通過存儲過程生成臨時表或者動態查詢語句來處理。 
 
 
大家有什麼好的解決方案能否回個消息哦,期盼。。。 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章