单位人事管理系统(数据库课设)

1.课设要求描述

●实现部门、职务、职称等信息的管理;

●实现职工信息的管理;

●实现职工学习经历和任职经历的管理;

●实现职工家庭关系的管理;

●实现奖惩信息的管理;

●创建存储过程查询个部门各种职称的职工数量;

●创建视图查询各职工的工号、姓名、部门、职务信息;

●创建触发器当增加、删除职工和修改职工部门信息时自动修改相应部门的职工人数;

●建立数据库相关表之间的参照完整性约束。

2.制作思路及基础讲解

  此项目主要是用于完成大二下半学期的数据库课设,随手记录。技术面大二下之前只学过Java,MySQL/SQLServer。所以此项目没有前端界面,只通过命令行的形式来操作该系统,制作思路:首先是数据库作为存储数据的地方,编写根据课设要求编写好对应的建表语句和存储过程,视图,触发器等。然后编写好对应系统的Java代码,最后通过JDBC将Java代码与数据库连接起来。

  部分学生可能学的比较浅,不理解mysql,sqlserver,java,c等一堆名词之间的含义。之前有同学找我做过这类似的课设。问的问题都比较抽象,例如用mysql做一个系统之类的。在此简单说一下我对于这些的理解,mysql,sqlserver都是数据库的一种,只不过是外国的所以都是用英文表示,大部分上课不听的同学看到这一堆英文都会比较懵,其实只需简单把数据库(mysql,SQLServer)理解成存储数据的地方,而java,c等语言是用来编写系统逻辑功能的代码。当然在数据库中的存储过程或者触发器什么的,这些功能也能在代码编程语言中通过特定的逻辑实现类似的功能,只不过我们在数据库中写好的话,免去了Java中代码的编写量,并且查询时速度会更快。

3.使用工具及语言详解

  不同的学校要求不同,有的是sqlserver,有的是mysql,但其实这两者的区别在我看来区别不大,大部分的语句格式都是一样的,所以我选择了我熟悉的一种,mysql来进行编写。在语言方面,我大一的时候学过c,但是当时没有认真听,后来也慢慢都忘了,大二时学了Java,并且之后又系统性的学了一遍,所以选择来用Java语言编写。对于编译器我使用的是IDEA,版本随意,这个不影响,但需要注意IDEA不是免费的,可以去试用30天,也可以自行网上找方法安装破解版。数据库可视化工具使用的是Navicat,这个工具同样也不是免费的,但提供14天试用期,有长期需求也需要各位自行找破解版。

PS:这里又提到两个新名词,IDEA和Navicat,这不是编程语言,而是工具的名字,大家需要慢慢熟悉这些名词,简单来说就是他能让你的编程之路变得更顺畅,提供了可视化的界面,不需要一直在黑窗口中输入代码。

4.数据库建表代码(完整数据库文件请到主页资源处下载)

--职务表

CREATE TABLE Positions (

    PositionID INT AUTO_INCREMENT PRIMARY KEY,

    PositionName VARCHAR(255) NOT NULL,

    PositionDescription TEXT

);

--职工表

CREATE TABLE Employees (

    EmployeeID INT AUTO_INCREMENT PRIMARY KEY,

    Name VARCHAR(255) NOT NULL,

    Gender ENUM('Male', 'Female') NOT NULL,

    BirthDate DATE NOT NULL,

    HireDate DATE NOT NULL,

    DeptID INT,

    PositionID INT,

    TitleID INT,

    FOREIGN KEY (DeptID) REFERENCES Departments(DeptID),

    FOREIGN KEY (PositionID) REFERENCES Positions(PositionID),

    FOREIGN KEY (TitleID) REFERENCES Titles(TitleID)

);

--任职经历表

CREATE TABLE Experiences (

    ExperienceID INT AUTO_INCREMENT PRIMARY KEY,

    EmployeeID INT,

    CompanyName VARCHAR(255) NOT NULL,

    PositionName VARCHAR(255),

    StartWorkDate DATE,

    EndWorkDate DATE,

    FOREIGN KEY (EmployeeID) REFERENCES Employees(EmployeeID)

);

--家庭关系表

CREATE TABLE FamilyRelations (

    FamilyRelationID INT AUTO_INCREMENT PRIMARY KEY,

    EmployeeID INT,

    RelationType VARCHAR(255) NOT NULL,

    FamilyMemberName VARCHAR(255) NOT NULL,

    FamilyMemberBirthDate DATE,

    FOREIGN KEY (EmployeeID) REFERENCES Employees(EmployeeID)

);

--创建创建存储过程查询个部门各种职称的职工数量;

CREATE PROCEDURE GetDepartmentTitleCounts()
BEGIN
    SELECT 
        d.DeptName,
        t.TitleName,
        COUNT(*) AS EmployeeCount
    FROM 
        Employees e
    JOIN 
        Departments d ON e.DeptID = d.DeptID
    JOIN 
        Titles t ON e.TitleID = t.TitleID
    GROUP BY 
        d.DeptName, t.TitleName
    ORDER BY 
        d.DeptName, t.TitleName;
END

--创建视图查询各职工的工号、姓名、部门、职务信息;

CREATE VIEW EmployeeDetails AS

SELECT

    e.EmployeeID AS 工号,

    e.Name AS 姓名,

    d.DeptName AS 部门,

    p.PositionName AS 职务

FROM

    Employees e

JOIN

    Departments d ON e.DeptID = d.DeptID

JOIN

    Positions p ON e.PositionID = p.PositionID;

--删除职工时的触发器

CREATE TRIGGER AfterDeleteTrigger

AFTER DELETE ON Employees

FOR EACH ROW

BEGIN

    UPDATE Departments SET EmployeeCount = EmployeeCount - 1

    WHERE DeptID = OLD.DeptID;

END;

--修改职工部门信息时的触发器

CREATE TRIGGER AfterUpdateTrigger

AFTER UPDATE ON Employees

FOR EACH ROW

BEGIN

    -- 减少原部门的职工人数

    UPDATE Departments SET EmployeeCount = EmployeeCount - 1

    WHERE DeptID = OLD.DeptID;

    -- 增加新部门的职工人数

    UPDATE Departments SET EmployeeCount = EmployeeCount + 1

    WHERE DeptID = NEW.DeptID;

END;

5.Java代码思路及结构

  设计到数据库,那就必然离不开jdbc,他是连接Java代码和数据库的一种工具,在编写Java代码时,我将其分为5个包,分别是config(数据库配置类),dao(编写sql语句层),entity(实体类),service(服务层),util(工具包)。具体后续的编码思路可以私信,内容过多不在详细赘述。

6.效果运行实例

附带源码任务书,数据库文件,需要后台私信

  • 16
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
由于数据流程图只是对数据处理及彼此之间的联系进行说明,未对数据的详细内容及数据的加工过程进行说明,而这正是数据字典所要表达的。数据字典是关于数据信息的集合,也就是对数据流程图中包含的所有元素的定义的集合。它能将数据流程图中全部数据流及其组成部分的数据元素、数据存储、数据加工等描述清楚,便于后续工作—系统设计的进行。 数据字典是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果。数据字典通常包括数据项、数据结构、数据流、数据存诸和处理过程5个部分。其中数据项是最小组成单位,若干数据项组成一个数据结构,数据字典通过对数据项和数据结构的定义来描述数据流、数据存储和逻辑内容。 针对一般食堂管理信息系统的需求,通过对食堂管理工作过程的内容和数据流程分析,设计如下所示的数据项和数据结构: 数据结构名称:职工用餐卡信息 含义说明:这里指的是职工用来使用付款的工具卡的一系列信息,它记录了包括它本身以及持卡者的一些信息 包括的数据项有: 1)卡号 (消费者使用的用来付款的卡的编号,与消费者办卡的先后顺序有关 别名Card_number 字符型 长度6) 2)余额(今日剩余用餐量) (消费者卡中所剩的金钱数量,别名Balance 字符型 长度 6) 3)办卡日期 (消费者办卡的日期,别名Card_date 日期型 长度 8) 4)持卡者姓名 (拥有信息卡的消费者的名称,别名 Person_name 字符型 长度 10) 5)花费(用餐次数统计) (消费者所消费的金钱数量 别名 Consume 字符型 长度 20) 数据结构名称:员工信息 含义说明:消费者群体之一,可以自由选择消费方式,办过卡用卡交易或者用现金交易 包括的数据项有: 1)工号 (职工在公司所编的号码 别名 S_number 字符型 长度 6) 2)部门职工所在的部门的名称 别名 S_system 字符型 长度 16) 3)职位 (职工所担任的职位 别名 S_class 字符型 长度 20) 4)姓名 (职工的姓名 别名 S_name 字符型 长度 10) 5)性别 (职工的性别 别名 S_sex 字符型 长度 4) 6)地址 (职工的所在地址 别名 S_adress 字符型 长度 20) 7)联系方式 (职工的手机号码 别名 S_tel 字符型 长度 20) 由于数据流程图只是对数据处理及彼此之间的联系进行说明,未对数据的详细内容及数据的加工过程进行说明,而这正是数据字典所要表达的。数据字典是关于数据信息的集合,也就是对数据流程图中包含的所有元素的定义的集合。它能将数据流程图中全部数据流及其组成部分的数据元素、数据存储、数据加工等描述清楚,便于后续工作—系统设计的进行。 数据字典是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果。数据字典通常包括数据项、数据结构、数据流、数据存诸和处理过程5个部分。其中数据项是最小组成单位,若干数据项组成一个数据结构,数据字典通过对数据项和数据结构的定义来描述数据流、数据存储和逻辑内容。 针对一般食堂管理信息系统的需求,通过对食堂管理工作过程的内容和数据流程分析,设计如下所示的数据项和数据结构: 数据结构名称:职工用餐卡信息 含义说明:这里指的是职工用来使用付款的工具卡的一系列信息,它记录了包括它本身以及持卡者的一些信息 包括的数据项有: 1)卡号 (消费者使用的用来付款的卡的编号,与消费者办卡的先后顺序有关 别名Card_number 字符型 长度6) 2)余额(今日剩余用餐量) (消费者卡中所剩的金钱数量,别名Balance 字符型 长度 6) 3)办卡日期 (消费者办卡的日期,别名Card_date 日期型 长度 8) 4)持卡者姓名 (拥有信息卡的消费者的名称,别名 Person_name 字符型 长度 10) 5)花费(用餐次数统计) (消费者所消费的金钱数量 别名 Consume 字符型 长度 20) 数据结构名称:员工信息 含义说明:消费者群体之一,可以自由选择消费方式,办过卡用卡交易或者用现金交易 包括的数据项有: 1)工号 (职工在公司所编的号码 别名 S_number 字符型 长度 6) 2)部门职工所在的部门的名称 别名 S_system 字符型 长度 16) 3)职位 (职工所担任的职位 别名 S_class 字符型 长度 20) 4)姓名 (职工的姓名
### 回答1: 人事管理系统是一个非常重要的数据库应用,它能够有效地管理公司或组织的人员信息和相关数据。MySQL是一种流行的关系型数据库管理系统,因其功能强大和易于使用而在各个领域得到广泛应用。 在人事管理系统中,MySQL数据库可以用来存储各种人员信息,如员工的基本信息(姓名、身份证号、联系方式等)、工作经历、教育背景、培训记录、奖惩记录等。同时,我们还可以将组织结构信息部门、岗位等)、薪资和福利信息、考勤和请假记录等与员工信息相关的数据存储于MySQL数据库中。 通过使用MySQL数据库,我们可以实现以下功能:首先,实现人员信息的快速存取和查询功能,管理员工信息的增、删、改、查操作,以及部门和岗位的管理。其次,实现工资和福利的管理,包括薪资的计算和发放、奖金和福利的录入和发放等。再次,实现考勤和请假的管理,包括考勤记录的录入和查询、请假申请和审批等。另外,MySQL数据库还可以与其他系统进行数据交互,如与薪资系统、考勤系统等进行数据同步或共享。最后,数据库的备份和恢复功能也能有效保护数据的安全。 综上所述,人事管理系统数据库的设计与实现离不开MySQL数据库的支持。通过有效地利用MySQL的特性和功能,可以实现一个高效、可靠和安全的人事管理系统,帮助公司或组织更好地管理和利用人力资源。 ### 回答2: 人事管理系统是一种集成了人力资源相关功能的软件系统,可用于管理组织内的员工信息、岗位管理、薪资管理、绩效评估等。而在人事管理系统中,数据库是非常关键和必要的组成部分,用于存储和管理系统中的各种数据。 在设计人事管理系统数据库时,我们可以选择使用MySQL作为数据库管理系统。MySQL是一种开源的、关系型数据库管理系统,具有稳定性和高性能的特点,适合用于中小型的系统开发。 在人事管理系统数据库的设计中,我们可以根据系统需求和功能模块来建立多个数据表。例如可以建立员工信息表、岗位信息表、薪资信息表、绩效评估表等。每个数据表中都包含了相应的字段,用于存储和描述相关的信息。 以员工信息表为例,可以包含如下字段:员工ID、姓名、性别、出生日期、手机号码、邮箱、部门、岗位、入职日期等。而岗位信息表则可以包含岗位ID、部门、职位名称、职能描述等字段。通过这样的设计,可以方便地将不同的数据表进行关联,实现系统的各种功能。 在系统的开发过程中,我们可以使用MySQL提供的SQL语句来创建、修改、查询和删除数据库表中的数据。同时,为了提高系统的数据安全性和性能,我们可以使用MySQL提供的事务和索引等机制来对数据库进行管理和优化。 总而言之,人事管理系统数据库的设计和管理是非常重要的,它直接关系到系统的运行效率和数据的安全性。通过合理的设计和使用MySQL等数据库管理系统,能够提高系统的稳定性和可靠性,为人力资源的管理提供更好的支持。 ### 回答3: 人事管理系统是一个用于实现人力资源管理的软件系统,通过该系统可以管理组织的人事档案、招聘流程、员工培训、薪资福利等信息。而MySQL是一种开源的关系型数据库管理系统,可以支持人事管理系统的数据存储和管理。 在人事管理系统中,MySQL数据库可以用来存储和管理各种人事信息。例如,可以创建一个员工表,包含员工编号、姓名、性别、出生日期等字段,用于存储员工的基本信息。还可以创建一个部门表,包含部门编号、部门名称等字段,用于存储部门信息。此外,还可以创建其他相关的表,如薪资表、招聘表、培训表等,用于存储相应的信息。 通过MySQL数据库,可以实现人事管理系统的各种功能。比如,可以使用SQL语句来查询特定员工的信息,如查询某个员工的基本信息、薪资信息等。还可以使用SQL语句来进行多表联查,如查询某个部门下的所有员工信息。此外,还可以使用SQL语句来插入、更新和删除数据,实现人事信息的增删改操作。同时,MySQL数据库还支持事务和并发控制,可以确保数据的一致性和安全性。 综上所述,MySQL数据库人事管理系统中发挥着重要的作用。通过合理设计和管理数据库,可以实现人事信息的存储、查询、更新和删除等操作,从而实现人事管理系统的各种功能。同时,MySQL还提供了高效的事务处理和并发控制机制,保障了数据的安全和一致性。因此,MySQL数据库是开发人事管理系统的一个重要选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值