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