一個數據庫設計方案

問題:
 
工資系統  
  之前咱們這裏的工資系統,都是把工資條目的字段預先設計好的。我如今想把它改一下。做成通用的。  
   
  工資條目表:(條目編號,條目名稱,條目性質(正負),條目運算公式,顯示序號)  
                       
  我的參數表:用於處理我的固定工資信息。如基本工資,休息日工資。這些固定字段從工資條目表中由用戶選擇後生成這張表。  
   
  工資數據表:保存我的每個月出勤等工資信息。  
   
  歷史表:保存歷史數據。  
   
  但以爲因爲不肯定條目內容,而用戶通常都要求條目橫列,涉及到界面上的處理。而不肯定橫列的字段內容,寫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);  
   
  至於條目橫列,那屬於旋轉表的功能,在不一樣的數據庫中有不一樣的處理方法,原理基本是同樣的,經過存儲過程生成臨時表或者動態查詢語句來處理。 
 
 
你們有什麼好的解決方案可否回個消息哦,期盼。。。 
相關文章
相關標籤/搜索