当前位置: 首页 > news >正文

【数据分析面试】54.员工信息(HR)数据库搭建

在这里插入图片描述

题目

由于发展需求,进一步提高公司人员统筹管理的能力,公司决定要重新升级人力数据管理系统。

现在,你的任务是为公司重新设计和搭建一个员工信息数据库

提示:考虑HR管理系统的功能,比如人员信息、入职时间、离职时间、薪资数据等等。
![[54.员工信息(HR)数据库搭建-20240527140133735.webp|507]]

数据库表设计

1. Employees(员工表)

存储员工的基本信息。

  • EmployeeID: INT, 主键
  • FirstName: VARCHAR(50)
  • LastName: VARCHAR(50)
  • Gender: CHAR(1) (M/F)
  • BirthDate: DATE
  • HireDate: DATE
  • PositionID: INT, 外键(引用Positions表)
  • DepartmentID: INT, 外键(引用Departments表)
  • ManagerID: INT, 外键(引用本表)
  • Email: VARCHAR(100)
  • Phone: VARCHAR(15)
  • Address: VARCHAR(200)
  • City: VARCHAR(50)
  • State: VARCHAR(50)
  • ZipCode: VARCHAR(10)
  • EmploymentStatus: VARCHAR(20)
  • EmergencyContactName: VARCHAR(100)
  • EmergencyContactPhone: VARCHAR(15)
  • EmergencyContactRelation: VARCHAR(50)
  • TerminationDate: DATE
  • TerminationReason: VARCHAR(255)
2. Departments(部门表)

存储公司的部门信息。

  • DepartmentID: INT, 主键
  • DepartmentName: VARCHAR(100)
  • Location: VARCHAR(100)
  • ManagerID: INT, 外键(引用Employees表)
  • CreatedDate: DATE
  • UpdatedDate: DATE
3. Positions(职位表)

存储职位信息。

  • PositionID: INT, 主键
  • PositionTitle: VARCHAR(100)
  • SalaryGrade: INT
  • DepartmentID: INT, 外键(引用Departments表)
  • JobDescription: TEXT
  • CreatedDate: DATE
  • UpdatedDate: DATE
4. Salaries(薪资表)

存储员工的薪资信息。

  • SalaryID: INT, 主键
  • EmployeeID: INT, 外键(引用Employees表)
  • SalaryAmount: DECIMAL(10, 2)
  • EffectiveDate: DATE
  • EndDate: DATE
5. Attendances(考勤表)

存储员工的考勤记录。

  • AttendanceID: INT, 主键
  • EmployeeID: INT, 外键(引用Employees表)
  • Date: DATE
  • CheckInTime: TIME
  • CheckOutTime: TIME
6. PerformanceReviews(绩效评估表)

存储员工的绩效评估记录。

  • ReviewID: INT, 主键
  • EmployeeID: INT, 外键(引用Employees表)
  • ReviewDate: DATE
  • ReviewerID: INT, 外键(引用Employees表)
  • Rating: INT
  • Comments: TEXT
  • Goals: TEXT

说明

  1. Employees表包含了员工的基本信息,并通过外键关联到DepartmentsPositions表。每个员工可能有一个上级经理,这通过ManagerID来实现自引用。
  2. Departments表记录了部门信息,每个部门可以有一个经理。
  3. Positions表记录了职位信息,包括薪资等级和所属部门。
  4. Salaries表存储了员工的薪资记录,允许追踪薪资的变化。
  5. Attendances表记录了员工每日的考勤情况。
  6. PerformanceReviews表记录了员工的绩效评估信息,包括评分和评论。

这个Schema设计可以覆盖大部分HR系统的基本需求,但在实际应用中可能还需要根据具体需求进行扩展和修改。

代码示例(部分)

以下是SQL代码,可以创建相应的表并处理外键引用,以确保表能够正确创建。注意表的创建顺序以及外键约束的处理。

-- 创建 Departments 表
CREATE TABLE Departments (DepartmentID INT PRIMARY KEY,DepartmentName VARCHAR(100),Location VARCHAR(100),ManagerID INT,CreatedDate DATE,UpdatedDate DATE
);-- 创建 Positions 表
CREATE TABLE Positions (PositionID INT PRIMARY KEY,PositionTitle VARCHAR(100),SalaryGrade INT,DepartmentID INT,JobDescription TEXT,CreatedDate DATE,UpdatedDate DATE,FOREIGN KEY (DepartmentID) REFERENCES Departments(DepartmentID)
);-- 创建 Employees 表
CREATE TABLE Employees (EmployeeID INT PRIMARY KEY,FirstName VARCHAR(50),LastName VARCHAR(50),Gender CHAR(1) CHECK (Gender IN ('M', 'F')),BirthDate DATE,HireDate DATE,PositionID INT,DepartmentID INT,ManagerID INT,Email VARCHAR(100),Phone VARCHAR(30),Address VARCHAR(200),City VARCHAR(50),State VARCHAR(50),ZipCode VARCHAR(10),EmploymentStatus VARCHAR(20),EmergencyContactName VARCHAR(100),EmergencyContactPhone VARCHAR(30),EmergencyContactRelation VARCHAR(50),TerminationDate DATE,TerminationReason VARCHAR(255),FOREIGN KEY (PositionID) REFERENCES Positions(PositionID),FOREIGN KEY (DepartmentID) REFERENCES Departments(DepartmentID),FOREIGN KEY (ManagerID) REFERENCES Employees(EmployeeID)
);-- 更新 Departments 表以增加外键约束
ALTER TABLE Departments
ADD CONSTRAINT fk_departments_manager
FOREIGN KEY (ManagerID) REFERENCES Employees(EmployeeID);

ER图 (参考)

![[HR Saas 人力数据管理系统-20240520004216312.webp]]

*更多详细答案可查看原文链接或关注公众号查阅。

在这里插入图片描述

相关文章:

【数据分析面试】54.员工信息(HR)数据库搭建

题目 由于发展需求,进一步提高公司人员统筹管理的能力,公司决定要重新升级人力数据管理系统。 现在,你的任务是为公司重新设计和搭建一个员工信息数据库。 提示:考虑HR管理系统的功能,比如人员信息、入职时间、离职…...

通过JavaScript本地存储数据

文章目录 本地存储本地存储分类 - localStorage本地存储分类 - sessionStorage存储复杂数据类型解决方法 本地存储 数据存储在用户浏览器中设置、读取方便、甚至页面刷新都不丢失数据容量较大,sessionStorage和localStorage约5M左右 本地存储分类 - localStorage …...

CTF-web-攻防世界-3

1、inget (1)、进入网站,提示传入id值 (2)、用一些闭合方式,返回都一样。 (3)、尝试万能密码。获得flag 2、mfw (1)、页面没有什么特殊的异常,使用dirsearch进行目录扫描,有一些.git文件。看样子是.git文件泄露。 使用githa…...

【附代码案例】深入理解 PyTorch 张量:叶子张量与非叶子张量

在 PyTorch 中,张量是构建神经网络模型的基本元素。了解张量的属性和行为对于深入理解模型的运行机制至关重要。本文将介绍 PyTorch 中的两种重要张量类型:叶子张量和非叶子张量,并探讨它们在反向传播过程中的行为差异。 叶子张量与非叶子张…...

TypeScript 学习笔记(七):TypeScript 与后端框架的结合应用

1. 引言 在前几篇学习笔记中,我们已经探讨了 TypeScript 的基础知识和在前端框架(如 Angular 和 React)中的应用。本篇将重点介绍 TypeScript 在后端开发中的应用,特别是如何与 Node.js 和 Express 结合使用,以构建强类型、可维护的后端应用。 2. TypeScript 与 Node.js…...

Linux基础知识点总结!超详细

Linux 的学习对于一个IT工程师的重要性是不言而喻的,学好它是工程师必备修养之一。 Linux 基础 操作系统 操作系统Operating System简称OS,是软件的一部分,它是硬件基础上的第一层软件,是硬件和其它软件沟通的桥梁。 操作系统…...

中小学校活动怎样投稿给媒体报道宣传?

身为一名学校老师,同时承担起单位活动向媒体投稿的宣传重任,我深知每一次校园活动背后的故事,都承载着师生们的辛勤汗水与教育的无限可能。起初,我满怀着对教育的热情,希望通过文字传递校园的温暖与光芒,却在投稿的道路上遇到了前所未有的挑战。 最初,我选择了最传统的路径——…...

Python代码:十七、生成列表

1、题目 描述: 一串连续的数据用什么记录最合适,牛牛认为在Python中非列表(list)莫属了。现输入牛牛朋友们的名字,请使用list函数与split函数将它们封装成列表,再整个输出列表。 输入描述: …...

C++ 程序的基本要素

一 标识符 程序中变量、类型、函数和标号的名称称标识符。 a,b,name,int,char,main,void等。 系统已有的标识符称为关键字。 常见关键字 using,namespace,void,return; int,float,double,char,bool,signed,unsignex, long,short,const,true,false,sizeof if,else,for,do,whil…...

藏汉翻译工具有哪些?这三款工具简单好用

藏汉翻译工具有哪些?在全球化日益加剧的今天,语言交流成为连接不同文化、促进民族间沟通与理解的重要桥梁。藏汉翻译工具作为推动藏汉文化交流的得力助手,其在促进民族团结、增进相互理解方面的作用愈发凸显。本文将为您盘点市面上主流的藏汉…...

three.js官方案例webgl_loader_fbx.html学习

目录 1.1 添加库引入 1.2 添加必要的组件scene,camera,webrenderer等 1.3 模型加载 1.4 半球光 1.5 动画 1.6 换个自己的fbx模型 1.7 fbx模型和fbx动画关联 1.7 html脚本全部如下 1.8 fbx.js全部脚本如下 1.1 添加库引入 import * as THREE from three; import Stats …...

51单片机-实机演示(单多个数码管)

仿真链接&#xff1a; http://t.csdnimg.cn/QAPhx 目录 一.引脚位置 二.多个显示 三 扩展 一.引脚位置 注意P00 - >A ; 这个多个的在左边,右边的A到B是控制最右边那个单个的. 接下来上显示单个的代码 #include <reg52.h> #include <intrins.h> #define u…...

Pytorch深度学习实践笔记10(b站刘二大人)

&#x1f3ac;个人简介&#xff1a;一个全栈工程师的升级之路&#xff01; &#x1f4cb;个人专栏&#xff1a;pytorch深度学习 &#x1f380;CSDN主页 发狂的小花 &#x1f304;人生秘诀&#xff1a;学习的本质就是极致重复! 《PyTorch深度学习实践》完结合集_哔哩哔哩_bilibi…...

QT5.15.2及以上版本安装

更新时间&#xff1a;2024-05-20 安装qt5.15以上版本 系统&#xff1a;ubuntu20.04.06 本文安装&#xff1a;linux-5.15.2 下载安装 # 安装编译套件g sudo apt-get install build-essential #安装OpenGL sudo apt-get install libgl1-mesa-dev# 下载qt安装器 https://downl…...

5月27日

思维导图 #include <iostream>using namespace std; namespace st_open {string a1;string retval(string a1);} using namespace st_open; int main() {getline(cin,a1);cout << "逆置前的字符串&#xff1a;" << a1 << endl;a1rerval(a1);…...

python给三维点上色,并添加颜色柱

python的matplotlib库给三维点上色&#xff0c;并添加颜色柱 import numpy as np from pathlib import Path import matplotlib.cm as cm import matplotlib.pyplot as plt# 可视化3d点迹 def Show3D_complete(points3D_result, color_list, save_path):# 指定起止点start_poin…...

Ubuntu22.04之解决:忘记登录密码(二百三十二)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…...

stream-并行流

定义 常规的流都是串行的流并行流就是并发的处理数据&#xff0c;一般要求被处理的数据互相不影响优点&#xff1a;数据多的时候速度更快&#xff0c;缺点&#xff1a;浪费系统资源&#xff0c;数据少的时候开启线程更耗费时间 模版 Stream<Integer> stream1 Stream.of…...

插件“猫抓”使用方法 - 浏览器下载m3u8视频 - 合并 - 视频检测下载 - 网课下载神器

前言 浏览器下载m3u8视频 - 合并 - 网课下载神器 chrome插件-猫抓 https://chrome.zzzmh.cn/info/jfedfbgedapdagkghmgibemcoggfppbb 步骤&#xff1a; P.s. 推荐大佬的学习视频&#xff01; 《WEB前端大师课》超级棒&#xff01; https://ke.qq.com/course/5892689#term_id…...

【quarkus系列】构建可执行文件native image

目录 序言为什么选择 Quarkus Native Image&#xff1f;性能优势便捷的云原生部署 搭建项目构建可执行文件方式一&#xff1a;配置GraalVM方式二&#xff1a;容器运行错误示例构建过程分析 创建docker镜像基于可执行文件命令式构建基于dockerfile构建方式一&#xff1a;构建mic…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具

作者&#xff1a;来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗&#xff1f;了解下一期 Elasticsearch Engineer 培训的时间吧&#xff01; Elasticsearch 拥有众多新功能&#xff0c;助你为自己…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句&#xff0c;它能够让用户直接在浏览器内练习SQL的语法&#xff0c;不需要安装任何软件。 链接如下&#xff1a; sqliteviz 注意&#xff1a; 在转写SQL语法时&#xff0c;关键字之间有一个特定的顺序&#xff0c;这个顺序会影响到…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!

5月28日&#xff0c;中天合创屋面分布式光伏发电项目顺利并网发电&#xff0c;该项目位于内蒙古自治区鄂尔多斯市乌审旗&#xff0c;项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站&#xff0c;总装机容量为9.96MWp。 项目投运后&#xff0c;每年可节约标煤3670…...

ETLCloud可能遇到的问题有哪些?常见坑位解析

数据集成平台ETLCloud&#xff0c;主要用于支持数据的抽取&#xff08;Extract&#xff09;、转换&#xff08;Transform&#xff09;和加载&#xff08;Load&#xff09;过程。提供了一个简洁直观的界面&#xff0c;以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)

🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

mac 安装homebrew (nvm 及git)

mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用&#xff1a; 方法一&#xff1a;使用 Homebrew 安装 Git&#xff08;推荐&#xff09; 步骤如下&#xff1a;打开终端&#xff08;Terminal.app&#xff09; 1.安装 Homebrew…...

站群服务器的应用场景都有哪些?

站群服务器主要是为了多个网站的托管和管理所设计的&#xff0c;可以通过集中管理和高效资源的分配&#xff0c;来支持多个独立的网站同时运行&#xff0c;让每一个网站都可以分配到独立的IP地址&#xff0c;避免出现IP关联的风险&#xff0c;用户还可以通过控制面板进行管理功…...

【JVM】Java虚拟机(二)——垃圾回收

目录 一、如何判断对象可以回收 &#xff08;一&#xff09;引用计数法 &#xff08;二&#xff09;可达性分析算法 二、垃圾回收算法 &#xff08;一&#xff09;标记清除 &#xff08;二&#xff09;标记整理 &#xff08;三&#xff09;复制 &#xff08;四&#xff…...

【LeetCode】算法详解#6 ---除自身以外数组的乘积

1.题目介绍 给定一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O…...

算术操作符与类型转换:从基础到精通

目录 前言&#xff1a;从基础到实践——探索运算符与类型转换的奥秘 算术操作符超级详解 算术操作符&#xff1a;、-、*、/、% 赋值操作符&#xff1a;和复合赋值 单⽬操作符&#xff1a;、--、、- 前言&#xff1a;从基础到实践——探索运算符与类型转换的奥秘 在先前的文…...