当前位置: 首页 > 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…...

NEURAL MASK RMBG-2.0技术演进:从RMBG-1.0到ART-ENGINE的架构升级

NEURAL MASK RMBG-2.0技术演进&#xff1a;从RMBG-1.0到ART-ENGINE的架构升级 1. 背景与挑战 传统的图像抠图工具在面对复杂场景时往往力不从心。当遇到细微的发丝、半透明物体或者复杂的光影交错时&#xff0c;这些工具要么产生锯齿状的边缘&#xff0c;要么无法准确区分主体…...

cbindgen高级配置指南:自定义类型映射与导出规则详解

cbindgen高级配置指南&#xff1a;自定义类型映射与导出规则详解 【免费下载链接】cbindgen A project for generating C bindings from Rust code 项目地址: https://gitcode.com/gh_mirrors/cb/cbindgen cbindgen 是 Rust 生态系统中最强大的 C/C 绑定生成工具&#x…...

Windows 11安装终极指南:5分钟绕过所有硬件限制

Windows 11安装终极指南&#xff1a;5分钟绕过所有硬件限制 【免费下载链接】MediaCreationTool.bat Universal MCT wrapper script for all Windows 10/11 versions from 1507 to 21H2! 项目地址: https://gitcode.com/gh_mirrors/me/MediaCreationTool.bat 还在为Wind…...

零代码体验LingBot-Depth:在线Demo快速生成3D深度效果图

零代码体验LingBot-Depth&#xff1a;在线Demo快速生成3D深度效果图 1. 引言&#xff1a;当普通照片“看”懂了三维世界 你有没有想过&#xff0c;一张普通的手机照片&#xff0c;除了记录下那一刻的色彩和构图&#xff0c;还能“记住”当时场景里每个物体离你有多远&#xf…...

GitHub中文界面终极指南:告别英文恐惧,5分钟让GitHub说中文

GitHub中文界面终极指南&#xff1a;告别英文恐惧&#xff0c;5分钟让GitHub说中文 【免费下载链接】github-chinese GitHub 汉化插件&#xff0c;GitHub 中文化界面。 (GitHub Translation To Chinese) 项目地址: https://gitcode.com/gh_mirrors/gi/github-chinese 你…...

Linux文件名修改方法大全

在Linux系统中&#xff0c;文件名修改是一个常见且重要的操作。文件名修改可以更好地管理文件和文件夹&#xff0c;使其更具可读性和有序性。通过更改文件名&#xff0c;可以清晰地表达文件的内容和用途&#xff0c;便于快速识别和定位文件。此外&#xff0c;对文件名进行调整还…...

BlynkEthernet_Manager:嵌入式以太网Blynk连接管理框架

1. BlynkEthernet_Manager&#xff1a;面向工业级嵌入式设备的以太网Blynk连接管理框架1.1 工程定位与设计哲学BlynkEthernet_Manager并非通用型网络中间件&#xff0c;而是一个面向资源受限但需高可靠远程交互场景的专用连接管理层。其核心工程目标明确&#xff1a;在Teensy 4…...

Kook Zimage真实幻想Turbo企业级应用:SpringBoot微服务架构实战

Kook Zimage真实幻想Turbo企业级应用&#xff1a;SpringBoot微服务架构实战 1. 微服务架构下的AI图像生成价值 在内容创作平台的后台重构过程中&#xff0c;我们将Kook Zimage真实幻想Turbo的AI图像生成能力独立封装为微服务&#xff0c;这种架构设计带来了显著优势&#xff…...

Elasticsearch面试八股整理

1. Elasticsearch 和 Lucene 是什么关系&#xff1f;这是高频第一问。你可以答&#xff1a;“Lucene 是底层全文检索库&#xff0c;负责倒排索引、分词、评分这些核心能力。Elasticsearch 是在Lucene 之上做的分布式封装&#xff0c;提供了集群、分片、副本、REST API、聚合分析…...

忍者像素绘卷部署教程:Ubuntu 22.04+PyTorch 2.1环境完整搭建步骤

忍者像素绘卷部署教程&#xff1a;Ubuntu 22.04PyTorch 2.1环境完整搭建步骤 1. 环境准备与系统要求 在开始部署忍者像素绘卷之前&#xff0c;请确保您的系统满足以下最低要求&#xff1a; 操作系统&#xff1a;Ubuntu 22.04 LTS&#xff08;推荐&#xff09;或更高版本显卡…...