参考链接:https://blog.csdn.net/MengKun822/article/details/88610027
作者:代码搬运工的菜鸟
人事管理系统在企业或者事业单位中可以起到很大的作用,日常业务是对人的管理,包括员工基本信息管理、单位部门管理、岗位管理、员工培训信息管理、薪酬管理、考勤管理以及劳动合同管理等功能。
功能模块:
1、考勤管理模块中,需要读取员工进出厂区的刷卡信息
2、员工的薪酬管理系统,根据员工的工资套账,计算员工的五险一金、奖惩、请假、出差、考勤工资、大病统筹、效益工资以及税率等进行核算,对于特殊的计件、计时工资需要进行特殊处理。
3、岗位管理主要是进行部门的人事调动以及职位的变动,这个依据员工的出勤情况、他的奖惩状况来进行升迁或者是降职。
还有很多
Windows 10
用户登录系统的时候,需要进行系统验证,如果验证成功才可以登录系统
就用户存取权限控制而言,在系统登陆界面时会选择是一般用户登陆还是管理员登陆,当为一般用户登陆时,只能查询员工信息和部门信息,而不能对其进行管理。
当以管理员身份登陆时不仅仅可以查询部门和员工的基本信息,也可以对其进行添加、删除、修改等操作。
SELECT
A.TABLE_NAME AS "表名",
A.COLUMN_NAME AS "字段名",
DECODE(
A.CHAR_LENGTH,
0,
DECODE(
A.DATA_SCALE,
NULL,
A.DATA_TYPE,
A.DATA_TYPE || '(' || A.DATA_PRECISION || ',' || A.DATA_SCALE || ')'
),
A.DATA_TYPE || '(' || A.CHAR_LENGTH || ')'
) AS "字段类型",
A.DATA_DEFAULT AS "默认值",
A.NULLABLE AS "能否为空",
B.comments AS "备注"
FROM
sys.user_tab_columns A,
sys.user_col_comments B
WHERE
A.table_name = B.table_name
AND A.COLUMN_NAME = B.COLUMN_NAME
选择导出的位置:
数据字典的表格如下:
表名 | 字段名 | 字段类型 | 默认值 | 能否为空 | 备注 |
---|---|---|---|---|---|
T_DEPARTMENT | DEPARTMENT_NO | VARCHAR2(20) | N | ||
T_DEPARTMENT | DEPARTMENT_NAME | VARCHAR2(50) | Y | ||
T_DEPARTMENT | LEADER_NO | VARCHAR2(20) | Y | ||
T_TRAVEL | TRAVEL_NO | VARCHAR2(20) | N | ||
T_TRAVEL | EMPLOYEE_NO | VARCHAR2(20) | Y | ||
T_TRAVEL | TRAVEL_BEGIN | DATE | Y | ||
T_TRAVEL | TRAVEL_END | DATE | Y | ||
T_ATTENDANCE | ATTENDANCE_NO | VARCHAR2(20) | N | ||
T_ATTENDANCE | EMPLOYEE_NO | VARCHAR2(20) | Y | ||
T_ATTENDANCE | WORKING_DATE | DATE | Y | ||
T_ATTENDANCE | OFFICE_HOUR | TIMESTAMP(6)(,6) | Y | ||
T_ATTENDANCE | CLOSING_TIME | TIMESTAMP(6)(,6) | Y | ||
T_ATTENDANCE | CARD_MACHINE_NO | VARCHAR2(20) | Y | ||
T_ATTENDANCE | CLOCK_IN_NO | NUMBER | Y | ||
T_SENIORITY | SENIORITY_NO | VARCHAR2(20) | N | ||
T_SENIORITY | EMPLOYEE_NO | VARCHAR2(20) | Y | ||
T_SENIORITY | SERVICE_LENGTH | NUMBER | Y | ||
T_SENIORITY | ENTRY_DATE | DATE | Y | ||
T_SALARY | SALARY_NO | VARCHAR2(20) | N | ||
T_SALARY | EMPLOYEE_NO | VARCHAR2(20) | Y | ||
T_SALARY | BASIC_SALARY | NUMBER(8,2) | Y | ||
T_SALARY | PENALTY | NUMBER(8,2) | Y | ||
T_SALARY | STARTING_TIME | DATE | Y | ||
T_SALARY | ENDING_TIME | DATE | Y | ||
T_SALARY | PAYDAY | NUMBER | Y | ||
T_ADMINISTRATOR | ADMIN_ACCOUNT_NO | VARCHAR2(20) | N | ||
T_ADMINISTRATOR | EMPLOYEE_NO | VARCHAR2(20) | Y | ||
T_ADMINISTRATOR | PASSWORD | VARCHAR2(50) | Y | ||
T_ADMINISTRATOR | ADMIN_LEVEL | VARCHAR2(20) | Y | ||
T_CONTRACT | CONTRACT_NO | VARCHAR2(20) | N | ||
T_CONTRACT | EMPLOYEE_NO | VARCHAR2(20) | Y | ||
T_CONTRACT | START_DATE | DATE | Y | ||
T_CONTRACT | EXPIRATION_DATE | DATE | Y | ||
T_OVERTIME | OVERTIME_NO | VARCHAR2(20) | N | ||
T_OVERTIME | EMPLOYEE_NO | VARCHAR2(20) | Y | ||
T_OVERTIME | OVERTIME_START | TIMESTAMP(6)(,6) | Y | ||
T_OVERTIME | OVERTIME_END | TIMESTAMP(6)(,6) | Y | ||
T_AWARD_PUBLISH | AWARD_PUBLISH_NO | VARCHAR2(20) | N | ||
T_AWARD_PUBLISH | EMPLOYEE_NO | VARCHAR2(20) | Y | ||
T_AWARD_PUBLISH | AWARD_PUBLISH_TYPE | VARCHAR2(50) | Y | ||
T_AWARD_PUBLISH | AWARD_PUBLISH_AMOUNT | NUMBER(8,2) | Y | ||
T_AWARD_PUBLISH | AWARD_PUBLISH_DATE | DATE | Y | ||
T_AWARD_PUBLISH | APPROVED_DEPARTMENT | VARCHAR2(50) | Y | ||
T_AWARD_PUBLISH | APPROVED_DATE | DATE | Y | ||
T_SEPARATION | SEPARATION_NO | VARCHAR2(20) | N | ||
T_SEPARATION | EMPLOYEE_NO | VARCHAR2(20) | Y | ||
T_SEPARATION | DEPARTMENT_POSITION | VARCHAR2(50) | Y | ||
T_SEPARATION | SEPARATION_DATE | DATE | Y | ||
T_TRAIN | TRAIN_NO | VARCHAR2(20) | N | ||
T_TRAIN | EMPLOYEE_NO | VARCHAR2(20) | Y | ||
T_TRAIN | TRAIN_PROGRAM | VARCHAR2(100) | Y | ||
T_TRAIN | TRAIN_ACHIVEMENT | VARCHAR2(200) | Y | ||
T_TRAIN | START_DATE | DATE | Y | ||
T_TRAIN | END_DATE | DATE | Y | ||
T_LEAVE_RECORD | LEAVE_DAYS | NUMBER(6,2) | Y | ||
T_EMPLOYEE | NAME | VARCHAR2(50) | Y | ||
T_JOB_TRANSFER | TRANSFER_DATE | DATE | Y | ||
T_EMPLOYEE | DEPARTMENT_NO | VARCHAR2(20) | Y | ||
T_EMPLOYEE | TITLE | VARCHAR2(20) | Y | ||
T_EMPLOYEE | BIRTHDAY | DATE | Y | ||
T_LEAVE_RECORD | APPROVER_NO | VARCHAR2(20) | Y | ||
T_JOB_TRANSFER | TRANSFER_REASON | LONG | Y | ||
T_EMPLOYEE | ID | VARCHAR2(50) | Y | ||
T_JOB_TRANSFER | POS_TRANSFER_BEF | VARCHAR2(50) | Y | ||
T_JOB_TRANSFER | APPROVAL_DATE | DATE | Y | ||
T_EMPLOYEE | ETHNICITY | VARCHAR2(50) | Y | ||
T_LEAVE_RECORD | LEAVE_TIME | DATE | Y | ||
T_LEAVE_RECORD | EMPLOYEE_NO | VARCHAR2(20) | Y | ||
T_JOB_TRANSFER | TRANSFER_NO | VARCHAR2(20) | N | ||
T_LEAVE_RECORD | CANCEL_TIME | DATE | Y | ||
T_AWARD_PUBLISH | AWARD_PUBLISH_REASON | LONG | Y | ||
T_EMPLOYEE | EDUCATION | VARCHAR2(20) | Y | ||
T_LEAVE_RECORD | LEAVE_NO | VARCHAR2(20) | N | ||
T_EMPLOYEE | GENDER | CHAR(10) | Y | ||
T_JOB_TRANSFER | POS_TRANSFER_AFTER | VARCHAR2(50) | Y | ||
T_EMPLOYEE | EMPLOYEE_NO | VARCHAR2(20) | N | ||
T_JOB_TRANSFER | EMPLOYEE_NO | VARCHAR2(20) | Y | ||
T_SWIPE_MACHINE | SWIPE_MACHINE_NO | VARCHAR2(20) | N |
由E-R图,可得以下关系:
部门表(部门号 部门名 领导人号)
T_DEPARTMENT(department_no,department_name,leader_no)
create table T_DEPARTMENT
(
department_no VARCHAR(20),
department_name VARCHAR(50),
leader_no VARCHAR(20)
)
出差表(出差编号 员工编号 出差起始 出差结束)
T_TRAVEL(travel_no,employee_no,travel_begin,travel_end)
create table T_TRAVEL
(
travel_no VARCHAR(20),
employee_no VARCHAR(20),
travel_begin DATE,
travel_end DATE
)
出勤表(出勤号 员工编号 上班日期 上班时间 下班时间 刷卡机号 打卡次数)
T_ATTENDANCE(attendance_no,employee_no,working_date,office_hour,closing_time,card_machine_no,clock_in_no)
CREATE TABLE T_ATTENDANCE
(
attendance_no VARCHAR(20),
employee_no VARCHAR(20),
working_date DATE,
office_hour timestamp,
closing_time timestamp,
card_machine_no VARCHAR(20),
clock_in_no NUMBER
)
工龄表(工龄记录号 员工编号 工龄 入职日期)
T_SENIORITY(seniority_no,employee_no,service_length,entry_date).
CREATE TABLE T_SENIORITY
(
seniority_no VARCHAR(20),
employee_no VARCHAR(20),
service_length NUMBER,
entry_date DATE
)
工资表(工资编号 员工编号 基本工资 罚款 起始时间 截止时间 发薪日期)
T_SALARY(salary_no,employee_no,basic_salary,penalty,starting_time,ending_time,payday)
CREATE TABLE T_SALARY
(
salary_no VARCHAR(20),
employee_no VARCHAR(20),
basic_salary NUMBER(8,2),
penalty NUMBER(8,2),
starting_time DATE,
ending_time DATE,
payday NUMBER
)
管理员表(管理员账号 职工编号 密码 级别)
T_ADMINISTRATOR(admin_account_no,employee_no,password,admin_level)
CREATE TABLE T_ADMINISTRATOR
(
admin_account_no VARCHAR(20),
employee_no VARCHAR(20),
password VARCHAR(50),
admin_level VARCHAR(20)
)
合同表(合同编号 员工编号 合同起始日期 合同到期日期)
T_CONTRACT(contract_no,employee_no,start_date,expiration_date)
CREATE TABLE T_CONTRACT(
contract_no VARCHAR(20),
employee_no VARCHAR(20),
start_date DATE,
expiration_date DATE
)
加班表(加班编号 员工编号 加班起始 加班结束)
T_OVERTIME(overtime_no,employee_no,overtime_start,overtime_end)
CREATE TABLE T_OVERTIME(
overtime_no VARCHAR(20),
employee_no VARCHAR(20),
overtime_start timestamp,
overtime_end timestamp
)
奖惩记录表(奖惩编号员工编号 奖惩类型 奖惩金额 奖惩日期 批复部门号 批复日期 奖惩原因)
T_AWARD_PUBLISH(award_publish_no,employee_no,award_publish_type,award_publish_amount,award_publish_date,approved_department,approved_date,award_publish_reason)
CREATE TABLE T_AWARD_PUBLISH(
award_publish_no VARCHAR(20),
employee_no VARCHAR(20),
award_publish_type VARCHAR(50),
award_publish_amount NUMBER(8,2),
award_publish_date DATE,
approved_department VARCHAR(50),
approved_date DATE,
award_publish_reason LONG
)
离职表(离职编号 员工编号 部门 职位 离职日期)
T_SEPARATION(separation_no,employee_no,department_position,separation_date)
CREATE TABLE T_SEPARATION
(
separation_no VARCHAR(20),
employee_no VARCHAR(20),
department_position VARCHAR(50),
separation_date DATE
)
培训表(培训编号 员工编号 培训项目 培训成绩 开始日期 结束日期)
T_TRAIN(train_no,employee_no,train_program,train_achievement,start_date,end_date)
CREATE TABLE T_TRAIN
(
train_no VARCHAR(20),
employee_no VARCHAR(20),
train_program VARCHAR(100),
train_achivement VARCHAR(200),
start_date DATE,
end_date DATE
)
请假记录表(请假编号 员工编号 请假时间 销假时间 请假天数 审批人编号)
T_LEAVE_RECORD(leave_no,employee_no,leave_time,cancel_time,leave_days,approver_no)
CREATE TABLE T_LEAVE_RECORD(
leave_no VARCHAR(20),
employee_no VARCHAR(20),
leave_time DATE,
cancel_time DATE,
leave_days NUMBER(6,2),
approver_no VARCHAR(20)
)
刷卡机表(刷卡机号)
T_SWIPE_MACHINE(swipe_machine_no)
CREATE TABLE T_SWIPE_MACHINE(
swipe_machine_no VARCHAR(20) primary key
)
实习员工表(登记编号 员工编号 部门号 职位 入职日期)T_INTERNSHIP_EMP(registration_no,employee_no,department_no,department_position,start_date)
CREATE TABLE T_INITERNSHIP_EMP
(
registration_no VARCHAR(20),
employee_no VARCHAR(20),
department_no VARCHAR(20),
department_position VARCHAR(50),
start_date DATE
)
员工表(员工编号 姓名 性别 出生日期 学历 身份证号 民族 职称 部门号)
T_EMPLOYEE(employee_no,name,gender,birthday,education,id,ethnicity,title,department_no)
CREATE TABLE T_EMPLOYEE
(
employee_no VARCHAR(20),
name VARCHAR(50),
gender CHAR(10),
birthday DATE,
education VARCHAR(20),
id VARCHAR(50),
ethnicity VARCHAR(50),
title VARCHAR(20),
department_no VARCHAR(20)
)
职务调动表(调动编号 员工编号 调动前职务 调动后职务 调动部门号 调动日期 批复日期 调动原因)
T_JOB_TRANSFER(transfer_no,employee_no,pos_transfer_bef,pos_transfer_after,transfer_depart_no,transfer_date,approval_date,transfer_reason)
CREATE TABLE T_JOB_TRANSFER
(
transfer_no VARCHAR(20),
employee_no VARCHAR(20),
pos_transfer_bef VARCHAR(50),
pos_transfer_after VARCHAR(50),
transfer_date DATE,
approval_date DATE,
transfer_reason LONG
)
ALTER TABLE T_DEPARTMENT ADD PRIMARY KEY (department_no);
ALTER TABLE T_TRAVEL ADD primary key (travel_no);
ALTER TABLE T_ATTENDANCE ADD PRIMARY KEY(attendance_no);
ALTER TABLE T_SENIORITY ADD primary key(seniority_no);
ALTER TABLE T_SALARY ADD primary key(salary_no);
ALTER TABLE T_ADMINISTRATOR ADD primary key(admin_account_no);
ALTER TABLE T_CONTRACT ADD PRIMARY KEY(contract_no);
ALTER TABLE T_OVERTIME ADD PRIMARY KEY(OVERTIME_NO);
ALTER TABLE T_AWARD_PUBLISH ADD PRIMARY KEY(AWARD_PUBLISH_NO);
ALTER TABLE T_SEPARATION ADD primary key(SEPARATION_NO);
ALTER TABLE T_TRAIN ADD primary key(TRAIN_NO);
ALTER TABLE T_LEAVE_RECORD ADD PRIMARY KEY(LEAVE_NO);
ALTER TABLE T_INITERNSHIP_EMP ADD PRIMARY KEY(REGISSTRATOR_NO);
ALTER TABLE T_EMPLOYEE ADD PRIMARY KEY(EMPLOYEE_NO);
ALTER TABLE T_JOB_TRANSFER ADD PRIMARY KEY(TRANSFER_NO);
ALTER TABLE T_DEPARTMENT ADD UNIQUE(LEADER_NO);
ALTER TABLE T_DEPARTMENT ADD CONSTRAINT FK_DEPARTMENT_LEADER FOREIGN KEY(LEADER_NO) REFERENCES T_EMPLOYEE(EMPLOYEE_NO);
alter table T_TRAVEL add UNIQUE(EMPLOYEE_NO);
ALTER TABLE T_TRAVEL ADD CONSTRAINT FK_TRAVEL_EMPLOYEE FOREIGN KEY(EMPLOYEE_NO) REFERENCES T_EMPLOYEE(EMPLOYEE_NO);
ALTER TABLE T_ATTENDANCE ADD UNIQUE(EMPLOYEE_NO);
ALTER TABLE T_ATTENDANCE ADD CONSTRAINT fk_attendance_employee foreign key(EMPLOYEE_NO) references T_EMPLOYEE(EMPLOYEE_NO);
ALTER TABLE T_ADMINISTRATOR ADD UNIQUE(EMPLOYEE_NO);
ALTER TABLE T_ADMINISTRATOR ADD constraint fk_admin_emp foreign key(EMPLOYEE_NO) references T_EMPLOYEE(EMPLOYEE_NO);
ALTER TABLE T_ATTENDANCE ADD UNIQUE(EMPLOYEE_NO);
ALTER TABLE T_ATTENDANCE ADD CONSTRAINT fk_attendance_employee foreign key(EMPLOYEE_NO) references T_EMPLOYEE(EMPLOYEE_NO);
ALTER TABLE T_ADMINISTRATOR ADD primary key(ADMIN_ACCOUNT_NO);
ALTER TABLE T_ADMINISTRATOR ADD UNIQUE(EMPLOYEE_NO);
ALTER TABLE T_ADMINISTRATOR ADD constraint fk_admin_emp foreign key(EMPLOYEE_NO) references T_EMPLOYEE(EMPLOYEE_NO);
ALTER TABLE T_AWARD_PUBLISH ADD UNIQUE(EMPLOYEE_NO);
ALTER TABLE T_AWARD_PUBLISH ADD CONSTRAINT FK_AWARD_PUBLISH_EMP FOREIGN KEY(EMPLOYEE_NO) REFERENCES T_EMPLOYEE(EMPLOYEE_NO);
ALTER TABLE T_CONTRACT ADD UNIQUE(EMPLOYEE_NO);
ALTER TABLE T_CONTRACT ADD CONSTRAINT FK_CONTRACT_EMP FOREIGN KEY(EMPLOYEE_NO) REFERENCES T_EMPLOYEE(EMPLOYEE_NO);
ALTER TABLE T_EMPLOYEE ADD UNIQUE(DEPARTMENT_NO);
ALTER TABLE T_EMPLOYEE ADD CONSTRAINT FK_EMPLOYEE_DEPART FOREIGN KEY(DEPARTMENT_NO) REFERENCES T_DEPARTMENT(DEPARTMENT_NO);
ALTER TABLE T_JOB_TRANSFER ADD PRIMARY KEY (TRANSFER_NO);
ALTER TABLE T_JOB_TRANSFER ADD UNIQUE (EMPLOYEE_NO);
ALTER TABLE T_JOB_TRANSFER ADD CONSTRAINT FK_TRANSFER_EMP FOREIGN KEY(EMPLOYEE_NO) REFERENCES T_EMPLOYEE(EMPLOYEE_NO);
ALTER TABLE T_LEAVE_RECORD ADD UNIQUE(EMPLOYEE_NO);
ALTER TABLE T_LEAVE_RECORD ADD constraint fk_leave_emp foreign key(EMPLOYEE_NO) references T_EMPLOYEE(EMPLOYEE_NO);
ALTER TABLE T_OVERTIME ADD UNIQUE(EMPLOYEE_NO);
ALTER TABLE T_OVERTIME ADD constraint fk_overtime_emp foreign key (EMPLOYEE_NO) references T_EMPLOYEE(EMPLOYEE_NO);
ALTER TABLE T_SALARY ADD UNIQUE(EMPLOYEE_NO);
ALTER TABLE T_SALARY ADD CONSTRAINT FK_SALARY_EMP FOREIGN KEY(EMPLOYEE_NO) REFERENCES T_EMPLOYEE(EMPLOYEE_NO);
ALTER TABLE T_SENIORITY ADD UNIQUE(EMPLOYEE_NO);
ALTER TABLE T_SENIORITY ADD CONSTRAINT FK_SENIORITY_EMP FOREIGN KEY(EMPLOYEE_NO) REFERENCES T_EMPLOYEE(EMPLOYEE_NO);
ALTER TABLE T_SEPARATION ADD UNIQUE(EMPLOYEE_NO);
ALTER TABLE T_SEPARATION ADD CONSTRAINT FK_SEPARATION_EMP FOREIGN KEY(EMPLOYEE_NO) REFERENCES T_EMPLOYEE(EMPLOYEE_NO);
ALTER TABLE T_TRAIN ADD UNIQUE(EMPLOYEE_NO);
ALTER TABLE T_TRAIN ADD CONSTRAINT FK_TRAIN_EMP FOREIGN KEY(EMPLOYEE_NO) REFERENCES T_EMPLOYEE(EMPLOYEE_NO);
数据库表的命名采用如下规则:
1)表名用T_开头,表名长度不能超过30个字符,表名中含有单词全部采用单数形式,单词要大写。
2)多个单词间用下划线(_)进行连接。若库中有多个系统,表名采用系统名称+单词或多个单词,系统名是开发系统的缩写,如VNET。
3)表中含有的单词建议用完整的单词。如果导致表名长度超过30个字符,则从最后一个单词开始,依次向前采用该单词的缩写。(如果没有约定的缩写,则采用该单词前4个字母来表示)。
数据库表的字段命名采用如下规则:
1)数据库字段名全部采用小写英文单词,单词之间用”_”隔开。字段长度不能超过30个字符。
2)如果该字段是代码,则在单词后加_id。
3)如果该字段表示的是时间,则使用_time为后缀。