一个员工在多个部门下的表结构设计 ,分层分级【巨坑】!!
很多人看到这个问题可能会觉得很简单 大部分人就比如按照我下面的2种表结构设计就可以了。
方案1:
1.部门表, id, name, parent_id
2.员工表, id, name,dept_ids(储存1,2,3类似的部门id 集合)
方案2:
1.部门表, id, name, parent_id
2.员工表, id, name
3.员工部门表, id, emp_id(员工id), dept_id(部门id)
本以为这么轻轻松松搞定!关系储存的 妥妥的。这下好了有一个这样的组织树结构:
部门10
|_部门1001
|_部门100101
|_部门100102
|_部门10010201
|_部门1002
|_部门100201
|_部门100202
|_部门1003
员工 “张三” 所属部门 部门100101, 部门10010201, 部门100201
此时有个场景 搞了某个 “内容“ 只有 部门100102 , 部门1002, 下的包含子部门人才有权限
光从明面上来看2个部门id 范围并没有产生交集,但是实际上 “张三”是拥有该 “内容”的权限
允许联表如何查询 拥有该"内容"权限的员工呢?假设数据量很大 用的分库分表在不考虑联表的情况下又如何实现?如果没有其他思路就看下面的注意点。欢迎大家把自己的更好想法提出来。大家一起讨论
注意点1
:需要一张 部门员工平铺表来实现部门下的下级和该员工的关系储存。
注意点2
:需要给部门ID 设定一个 增长规则比如一个员工在多个部门。 AA/AABB/AABBCC, AA/EE,
这种情况每个部门下的部门数量和深度就有了很大的局限性。
注意点
:需要给部门添加一个层级的字段, 比如 根部门为 0, 一级部门为 1 以此类推。
一个员工在多个部门下的表结构设计 ,分层分级【巨坑】!!相关推荐
- 使用面向对象思想,输出员工信息并计算员工的工资。定义一个部门(Department)类,该类有部门编号(Id)、部门名称(Name)属性;再定义一个员工(Employee)类,该类的属性有员工编号
运行结果如下: 题目: 使用面向对象思想,输出员工信息并计算员工的工资. 实现过程为:a.定义一个部门(Department)类,该类有部门编号(Id).部门名称(Name)属性:b.再定义一个员工( ...
- 使用Jquery+EasyUI进行框架项目开发案例解说之中的一个---员工管理源代码分享
使用Jquery+EasyUI 进行框架项目开发案例解说之中的一个 员工管理源代码分享 在開始解说之前,我们先来看一下什么是Jquery EasyUI?jQuery EasyUI是一组基于jQuery ...
- 组织要为每一个员工赋能
未来所有可量化.可衡量.可程序化的工作,都会被机器替代.巨变时代的组织管理,传统的管控方式已经不再适用.数字化生存时代,赋能将成为时代的关键词.只有关注人的成长,成为价值型组织,才能在变化中生存下去. ...
- oracle查询员工员工部门领导领导部门,oracle多表查询之经典面试题
一.笛卡尔积 概念 笛卡尔乘积是指在数学中,两个集合X和Y的笛卡尓积(Cartesian product),又称直积,表示为X × Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成 ...
- 如何做一个员工管理系统
员工管理系统 1. 准备工作 先导入html和前端页面 建立两个实体类:Department和Employee Department: package com.dary.sweb.pojo; im ...
- 级联选择器el-cascader处理复杂数据(四层、五层数据),回显部门以及部门下的人员
注意:参考第五层的数据处理比较nice 当级联选择器需要绑定的数组不再是简易数据,props涉及的字段不再是一个,而是列表里面套列表 比如,我想要获取部门以及下面的员工,如何显示?如下图1所示,后端返 ...
- 如何判断一个员工是潜力无限,还是“烂泥扶不上墙”?
此篇文章写于2021.1.15,之前写了一半,所以拖到今天才发.拖延症发作了,尴尬.好了,下面进入正文吧. 2020年结束了,想必大家都在做各种总结吧,我们部门也一样,一封封总结邮件,发到我的邮箱. ...
- 一个员工的离职成本到底有多大
导读: 一般来说,核心人才的流失,至少有1-2个月的招聘期.3个月的适应期,6个月的融入期:此外,还有相当于4个月工资的招聘费用,超过40%的失败率. 一个员工离职后留下的坑,并不是再找一个人填上就万 ...
- 想进阿里的悲剧了,马云说了今年不会增加一个员工(转载自钛媒体http://www.tmtpost.com/229500.html)
日前,阿里巴巴集团在北京国家体育馆举行在京员工大会,会上马云作了发言.马云认为,阿里发展确实太快,三万多人已经足够了.今年整个集团的员工数不会增加一个人,出一个进一个. [李小年/钛媒编辑]日前,阿里 ...
- 一个员工的离职,背后都意味着什么?
来源 | web前端开发 一个员工的离职成本,很恐怖! 一个员工离职后留下的坑,并不是再找一个人填上就万事大吉了.一般来说,核心人才的流失,至少有1-2个月的招聘期.3个月的适应期,6个月的融入期:此 ...
最新文章
- [置顶] 当我拿车钥匙的时候,刚交的女朋友跑了。。。
- 看到数学就打怵不是你的错:百万人调查发现上黑板做题、作业太多、家长陪写都会引发焦虑|PNAS...
- nginx优化-nginx事件处理模型优化use epoll;
- transport request 实现原理
- 同事操作两个数据源保持事务一致_微服务分布式事务4种解决方案实战
- Shell脚本学习-阶段六-密钥的批量分发与执行
- Windows Event Log相关函数使用(1)
- 36-基于51单片机的LED彩灯控制器设计
- 《白帽子讲web安全》笔记
- android 项目交接文档,产品交付规范文档
- PID参数整定一些总结
- 联通光猫创维DT741-csf如何获取超级账户
- DHT11温湿度模块
- 复活Google右键翻译方法及Google浏览器网页一键翻译
- 【雷达信号处理】脉冲多普勒PD及其MATLAB实现
- 浪潮网络交换机快速使用手册
- 中国存储器“3+1”版图初现 行业要再跑5年马拉松
- 【blue bridge cup】笔记
- dubbo使用带有密码的redis注册中心完整配置及遇到问题解决、RestTemplate配置【持续更新】
- Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day36】—— 实战那些事儿1
热门文章
- 花书《deep learning》深度学习 学习笔记 深度学习历史趋势
- 【软件周刊第 33 期】跳票 5 次的 Fedora 26 Beta 终发布 坐等正式版
- Cesium添加自定义弹窗并设置随地图移动位置移动
- 百亿诈骗案频出,欧科云链用“技术责任”拓宽Web3安全边界
- 韵达单号查询,韵达速递查询,对需要的单号记录进行标记
- 终于通过自己的排查,把单元测试跑了起来,写代码不怕啦
- 波哥带你探寻SpringBoot中优雅设计监听器的本质
- Error:SyntaxError:JSON Parse error:Unexpected EOF 解决
- 簇优化,单验,投诉处理流程
- Nik Collection 6.2全新版Nik降噪锐化调色PS/LR插件