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

中国建设承包商网站工程施工人员招聘网站

中国建设承包商网站,工程施工人员招聘网站,wordpress主题加授权方式,新颖的互联网公司名字👏作者简介:大家好,我是小童,Java开发工程师,CSDN博客博主,Java领域新星创作者 📕系列专栏:前端、Java、Java中间件大全、微信小程序、微信支付、若依框架、Spring全家桶 &#x1f4…

👏作者简介:大家好,我是小童,Java开发工程师,CSDN博客博主,Java领域新星创作者
📕系列专栏:前端、Java、Java中间件大全、微信小程序、微信支付、若依框架、Spring全家桶
📧如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀
🔥如果感觉博主的文章还不错的话,请👍三连支持👍一下博主哦
🍂博主正在努力完成2023计划中:以梦为马,扬帆起航,2023追梦人

  

问题起源

最近接手的某款办公软件,其中要添加一些额外的功能,涉及到树状层级的部门,人员查找。又最近在学习若依管理系统,其中也设计到层级的部门管理,查看了其中的部门表设计与一些SQL编写,发掘有一些小小的差异,即可带来检索与查找的极大遍历。容我们慢慢道来。

若依中的dept表设计

若依系统中的sys_dept表设计字段如下:

 若依系统中添加部门的操作页面如下:

 

 

我们选几个重点字段说一下:

  1. parent_id字段:表明当前部门的上级部门节点id;
  2. order_num:表明当前部门在其上级部门下的排序次序;
  3. ancestors: 注释为“祖级列表”,我们来看一下表中的数据以及对应的真实的数据结构:

比如,若依中默认的部门级结构如下:

 

我们来看一下其中"若依科技->深圳总公司->研发部门"的数据库具体数据,尤其是ancestors数据是什么样的:

 

如图所示,研发部门的ancestors数据为“0,100,101”,0为所有部门父级,不表示具体部门,如果一个部门的父级只有0,表明其为最高级的部门;100表示dept_id=100的若依科技,101表示dept_id=101的深圳总公司。

乍一看这个字段设计的如此复杂,需要保存从最高级直到本级中的所有部门节点,给保存、更新带来了很大的复杂度,这样设计有什么好处呢?

另一种常用设计

说是另一种常用设计,更准确是说是我们当前系统的表设计,为了不违反公司相关规章,这里我就不贴真实的数据库表截图了,大概是这样的:

iddept_nameparent_id
1总公司0
2一级部门1
3二级部门2

即仅通过一个parent_id来表明层级关系,这样带来的一个显而易见的好处便是保存与更新带来的操作比较简单。

差异

差异就在于若依中的层级表设计有字段来保存部门祖级的所有节点。最近实现业务代码涉及到这块儿功能才发觉其有很好的实用性。

列举所有子部门

层级结构中最常见的一个业务是列出部门下的所有子部门,那么应该如下编写代码呢?

显然,如果没有ancestors的帮助,我们需要在代码中通过parent_id逐层逐级的遍历列举以及合并列表,而有了ancestors帮助,我们只需要一行SQL语句:

.....WHERE dept_id IN ( SELECT dept_id FROM sys_dept WHERE find_in_set('100', ancestors ) )

逐级查找所有父级部门

这种业务通常处于低级部门规则覆盖高级部门规则的场景下,即部门人员总是采用部门层级最接近自己的部门的规章,按照这一原则来实现代码的话,ancestors直接列举出了从高到底各个层级部门,而仅有parent_id则需要通过代码来循环查找父级部门。

 

专栏:若依框架 

 

                                                                      关注公众号,领取资料。 

http://www.yayakq.cn/news/344281/

相关文章:

  • 小狐狸动画制作软件app下载安卓系统最好优化软件
  • 婚庆公司网站搭建微信运营工具
  • 中博建设集团有限公司网站苏州网络推广公司永阳
  • 网页网站建设的ppt外包网站开发 收费
  • 云南云南省城乡建设厅网站自己做店招的网站
  • python网站开发环境加强网站技术建设
  • 东莞seo网站管理西安seo代理
  • 90设计首页官网详情页seo整站优化解决方案
  • 模块网站怎么做wordpress 文章 分类
  • 什么好的设计网站东莞网页制作费用
  • 电子图书网站开发的目的网站做icp备案需要多久
  • 为什么做免费视频网站设计之家海报
  • 2345浏览器官方网站安丘网站建设
  • pc网站生成手机网站云南昆明网站建设
  • 正规的网站制作电话物流企业网站建设步骤
  • 辽宁城乡和住房建设部网站网站服务公司业务范围包括
  • 网站开发需要什么服务器南京网站制作公司排名
  • 云南档案馆网站建设资金做淘宝必备网站
  • 找人做一个网站需要多少钱天津做网站找谁
  • 凡科建站app工商企业网站
  • 商城系统哪家的好seo 能提高网站速度吗
  • 做公司+网站建设价格低学习php网站建设
  • 视频网站广告代码网站建设分为什么
  • c网站开发用dw做电子商务网站步骤
  • 优秀网站psd开发公司先进会员企业报告材料
  • 太原网页设计师招聘顺昌网站建设wzjseo
  • 自己做网站花多少钱网站后台怎么上传文章
  • 第一次和两个老头做网站网站建设公司宣传文案
  • 菏泽网站建设信息青岛网站建设迅优
  • 企业网站模板观叫湖南岚鸿团队台州h5建站