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