某单位欲建立工资管理系统,实现月工资计算和打印输出相应的工资表格;实现与工资管理有关的档案管理;提高工资管理工作效率,降低出错率。(1)功能要求保存有关工资计算以及工资管理所必须的数据;能对各种数据进行插入、修改、删除等操作;能对数据进行查询、统计正确计算出个人月工资、部门月工资以及全厂月工资;能对病假扣款系数进行修正;能打印输出工资计算表、个人工的代号、姓名、性别、出生日期、参加工作日期、所属部门、人员类别、工种职别、技术等级、技术职称、文化程度、民族、籍贯、现住址。②职工的基本工资、岗位津贴、物价补贴、职务津贴、住房补贴、房租。③职工的出勤日数、公伤日数、产假日数、病假日数、旷工日数、事假日数、加班日数、夜班日数、病假系数。
时间: 2023-09-12 13:12:26 浏览: 167
这是一个相对复杂的工资管理系统需求,需要设计多张表来存储相关数据。以下是一个简单的表结构设计示例:
1. 职工基本信息表(employee_info)
|字段名|类型|描述|
|:--|:--|:--|
|id|int|职工ID|
|name|varchar(50)|职工姓名|
|gender|varchar(10)|职工性别|
|birth_date|date|职工出生日期|
|work_date|date|职工参加工作日期|
|dept|varchar(50)|所属部门|
|employee_type|varchar(50)|人员类别|
|job_type|varchar(50)|工种职别|
|tech_level|int|技术等级|
|tech_title|varchar(50)|技术职称|
|education|varchar(50)|文化程度|
|ethnic|varchar(50)|民族|
|hometown|varchar(100)|籍贯|
|address|varchar(100)|现住址|
2. 职工工资信息表(employee_salary)
|字段名|类型|描述|
|:--|:--|:--|
|id|int|记录ID|
|employee_id|int|职工ID|
|basic_salary|float|基本工资|
|post_allowance|float|岗位津贴|
|price_subsidy|float|物价补贴|
|duty_allowance|float|职务津贴|
|housing_subsidy|float|住房补贴|
|rent|float|房租|
|attendance_days|int|出勤日数|
|public_injury_days|int|公伤日数|
|maternity_leave_days|int|产假日数|
|sick_leave_days|int|病假日数|
|absenteeism_days|int|旷工日数|
|personal_leave_days|int|事假日数|
|overtime_days|int|加班日数|
|night_shift_days|int|夜班日数|
|sick_leave_coefficient|float|病假系数|
3. 工资计算表(payroll)
|字段名|类型|描述|
|:--|:--|:--|
|id|int|记录ID|
|employee_id|int|职工ID|
|month|varchar(10)|发放月份|
|total_salary|float|总工资|
|tax|float|个人所得税|
|real_salary|float|实发工资|
在这个表结构中,职工基本信息表保存了职工的基本信息,职工工资信息表保存了职工的工资信息,工资计算表则记录了每个月的工资计算结果。职工工资信息表中的病假系数可以在实际计算中进行修正。你可以在MySQL中运行以下代码来创建这三张表:
```
CREATE TABLE employee_info (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
gender VARCHAR(10) NOT NULL,
birth_date DATE NOT NULL,
work_date DATE NOT NULL,
dept VARCHAR(50) NOT NULL,
employee_type VARCHAR(50) NOT NULL,
job_type VARCHAR(50) NOT NULL,
tech_level INT NOT NULL,
tech_title VARCHAR(50) NOT NULL,
education VARCHAR(50) NOT NULL,
ethnic VARCHAR(50) NOT NULL,
hometown VARCHAR(100) NOT NULL,
address VARCHAR(100) NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE employee_salary (
id INT NOT NULL AUTO_INCREMENT,
employee_id INT NOT NULL,
basic_salary FLOAT NOT NULL,
post_allowance FLOAT NOT NULL,
price_subsidy FLOAT NOT NULL,
duty_allowance FLOAT NOT NULL,
housing_subsidy FLOAT NOT NULL,
rent FLOAT NOT NULL,
attendance_days INT NOT NULL,
public_injury_days INT NOT NULL,
maternity_leave_days INT NOT NULL,
sick_leave_days INT NOT NULL,
absenteeism_days INT NOT NULL,
personal_leave_days INT NOT NULL,
overtime_days INT NOT NULL,
night_shift_days INT NOT NULL,
sick_leave_coefficient FLOAT NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (employee_id) REFERENCES employee_info(id)
);
CREATE TABLE payroll (
id INT NOT NULL AUTO_INCREMENT,
employee_id INT NOT NULL,
month VARCHAR(10) NOT NULL,
total_salary FLOAT NOT NULL,
tax FLOAT NOT NULL,
real_salary FLOAT NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (employee_id) REFERENCES employee_info(id)
);
```
需要根据实际情况对表结构进行调整,这里仅提供一个基本的表结构设计示例。
阅读全文