Skip to content

员工表没什么好说的,由部门表、职务表和员工表组成,这甚至是通用的,大多数企业管理员工都是由这三张表构成。同时还有用户、角色与权限表按照RBAC权限模型进行设计,这里RBAC不是重点所以只创建用户与角色表用来登录后台管理系统。

部门表建表语句

sql
CREATE TABLE `t_dept`  (
  `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键',
  `dname` varchar(20)  NOT NULL COMMENT '部门名称',
  `is_deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `unq_dname`(`dname`) USING BTREE
)COMMENT = '部门表';

职位表结构

sql
CREATE TABLE `t_job`  (
  `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键',
  `job` varchar(20) COMMENT '职位名称',
  `is_deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `unq_job`(`job`) USING BTREE
) COMMENT = '职位表';

员工表结构

sql
CREATE TABLE t_emp  (
  id int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键',
  wid varchar(20) NOT NULL COMMENT '工号',
  ename varchar(20) NOT NULL COMMENT '姓名',
  sex char(1) NOT NULL COMMENT '性别',
  married tinyint(1) NOT NULL COMMENT '婚否',
  education tinyint(4) NOT NULL COMMENT '学历:1大专,2本科,3研究生,4博士,5其他',
  tel char(11) NOT NULL COMMENT '电话',
  email varchar(200) NULL DEFAULT NULL COMMENT '邮箱',
  address varchar(200) NULL DEFAULT NULL COMMENT '住址',
  job_id int(10) UNSIGNED NOT NULL COMMENT '职务ID',
  dept_id int(10) UNSIGNED NOT NULL COMMENT '部门ID',
  mgr_id int(10) UNSIGNED NULL DEFAULT NULL COMMENT '上司ID',
  hiredate date NOT NULL COMMENT '入职日期',
  termdate date NULL DEFAULT NULL COMMENT '离职日期',
  `status` tinyint(3) UNSIGNED NOT NULL COMMENT '状态:1在职,2休假,3离职,4死亡',
  is_deleted tinyint(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除',
  PRIMARY KEY (id) USING BTREE,
  UNIQUE INDEX unq_wid(wid) USING BTREE,
  INDEX idx_job_id(job_id) USING BTREE,
  INDEX idx_dept_id(dept_id) USING BTREE,
  INDEX idx_status(status) USING BTREE,
  INDEX idx_mgr_id(mgr_id) USING BTREE,
  INDEX idx_wid(wid) USING BTREE
) COMMENT = '员工表';

角色表

这里为了方便角色和用户就使用一对一关系了,更加详细的划分可以在这里使用RBAC权限模型,角色表建表语句如下:

sql
CREATE TABLE `t_role`  (
  `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键',
  `role` varchar(20) NOT NULL COMMENT '角色名称',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `unq_role`(`role`) USING BTREE
)COMMENT = '角色表';

用户表

sql
CREATE TABLE t_user  (
  id int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键',
  username varchar(150) NOT NULL COMMENT '用户名',
  `password` varchar(2000) NOT NULL COMMENT '密码(AES加密)',
  emp_id int(10) UNSIGNED NOT NULL COMMENT '员工ID',
  role_id int(10) UNSIGNED NOT NULL COMMENT '角色ID',
  `status` tinyint(3) UNSIGNED NOT NULL COMMENT '状态:1可用,2禁用',
  create_time timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '添加时间',
  last_update_time timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后修改时间',
  is_deleted tinyint(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除',
  PRIMARY KEY (id) USING BTREE,
  UNIQUE INDEX unq_username(username) USING BTREE,
  INDEX idx_username(username) USING BTREE,
  INDEX idx_emp_id(emp_id) USING BTREE,
  INDEX idx_role_id(role_id) USING BTREE,
  INDEX idx_status(status) USING BTREE
) COMMENT = '用户表';