`

部门机构树

 
阅读更多
组织机构是典型的层次树结构表,以下就以组织为例开始分析





1. 部门机构树如下



┌───────────────
│                                         
│    部门                               
│     │                                 
│     ├─技术部                     
│     │    │                          
│     │    ├─技术1部            
│     │    │                          
│     │    └─技术2部            
│     │                                 
│     ├─市场部                     
│     │    │                          
│     │    ├─市场1部            
│     │    │                          
│     │    └─市场2部            
│     │                                 
│     └─客服部                     
│                                         
└───────────────







2. 数据库表 org

标识 父标识 所有父标识 名称 编码 父编码 所有父编码 叶子 级别
id  parent_id  parent_ids  text  code  parent_code  parent_codes  leaf  grade 
1   '1'   部门   00    '00'   0 1
2  1  '1','2'   技术部   0001   00   '00','0001'   0 2
3  2  '1','2','3'   技术 1 部   000101   0001   '00','0001','000101'   1 3
4  2  '1','2','4'   技术 2 部   000102   0001   '00','0001','000102'   1 3
5  1  '1','5'   市场部   0002   00   '00','0002'   0 2
6  5  '1','5','6'   市场 1 部   000201   0002   '00','0002','000201'   1 3
7  5  '1','5','7'   市场 2 部   000201   0002   '00','0002','000202'   1 3
8  1  '1','8'   客服部   0003   00   '00','0003'   1 2
        





3. 这样设计的好处



(1) 上下级关系变化时修改code即可,不需要修改主键id

(2)


有了code可以方便查看所有子节点信息 ,比如查看id为1的所有子节点信息

根据id(1)先获取code(0001)再执行select * from org where code like '0001%'

(3)


有了parent_codes可以方便查看所有父节点信息 ,比如查看id为6的所有父节点信息

根据id(6)先获取parent_codes再执行select * from org where code in ('00','0002','000201')

(4)


有了leaf可以方便查看所有叶子和非叶子节点信息 ,比如查看所有叶子节点信息

select * from org where leaf = '1'

(5)


有了grade可以方便查看某级别的节点信息 ,比如查看层次树级别为2的节点信息

select * from org where grade = '2'








4. 注意事项



(1)


根节点code的值必须是00

不合法:01、02、10、20

(2)




子节点code的值必须是“父节点code + 序号(不能是00)”

合法:0001、0002、000101

不合法:01、0000、0101、000100



http://topic.csdn.net/u/20100713/17/3e31cfba-aeea-4b8e-9f40-0acfa411ac60.html
分享到:
评论

相关推荐

    h5移动端部门树展示

    在H5移动端开发中,部门树展示是一种常见的需求,它用于组织结构的呈现,比如公司内部的部门架构、员工层级关系等。这种功能通常应用于企业内部管理系统或者协作平台,便于用户快速查找和理解组织结构。下面我们将...

    获取树的下级所有和上级所有

    在IT领域,尤其是在数据库管理和数据结构的设计中,"获取树的下级所有和上级所有"是一个常见的需求。这个任务通常涉及到层次数据结构的处理,尤其是树形结构。在SQL(结构化查询语言)中,这样的操作可以用于组织...

    java jquery Ztree 机构人员树示例

    在“机构人员树”示例中,ZTree被用来展示公司或组织的部门结构,并且能够选择或操作相关的员工。 首先,让我们了解一下ZTree的基本用法。ZTree的核心是JSON数据格式,它通过Ajax从服务器获取数据并渲染成树状结构...

    部门或人员下拉框树形

    "部门或人员下拉框树形"是一种常见的UI元素,它将传统的下拉框与树形结构相结合,以提供更直观、高效的筛选和选择体验。这个设计尤其适用于组织结构复杂、部门或人员众多的企业系统,用户可以通过展开和折叠节点来...

    vue实现组织机构树

    在Vue.js框架中实现组织机构树是一个常见的需求,主要用于展示公司、部门或项目中的层级关系。Vue的灵活性和组件化特性使得构建这种交互式的树结构变得相对简单。在这个项目中,我们看到几个关键的文件,如`兼容老...

    java部门树形开发

    在Java开发中,构建部门树形结构是一种常见的需求,它通常用于组织机构管理、权限分配等场景。这个项目从jsp、js、css前端界面设计,到后端的DAO层、Service层、Controller层的实现,提供了完整的开发流程,旨在帮助...

    orgChar组织机构树

    "orgChar组织机构树"是一种专门用于展示组织结构或流程关系的图形化工具,它以树状的形式将各个部门和人员层次清晰地呈现出来。在IT领域,这种数据可视化技术常用于企业管理、项目协调和权限分配等方面,因为它可以...

    机构树-jquery_zTree.zip

    【描述】"机构树jquery_zTree"暗示了这个项目可能用于展示企业的组织架构,例如部门、员工之间的层级关系。zTree不仅适用于机构树,还可以应用于文件目录浏览、权限管理等多种场景,具有良好的用户体验和性能优化。 ...

    基于Vue的组织架构 组件 组织机构树,可自定义样式

    "组织机构树"通常会涉及到数据的动态加载和处理,这可能需要利用Vue的数据绑定和计算属性。例如,数据可以通过API获取,然后在Vue实例的data对象中存储,计算属性可以用来处理数据,比如决定哪些节点应该被展开或...

    ecotree.js实现组织机构树

    在IT行业中,构建组织结构图或组织机构树是常见的需求,尤其在企业级应用中,用于展示员工、部门等关系。`ecotree.js`是一个专门用于创建组织机构树的JavaScript库,它提供了轻量级且高效的方法来展示层次化的数据。...

    jQuery可任意拖拽排序机构菜单树.rar

    本资源“jQuery可任意拖拽排序机构菜单树.rar”提供了一个功能强大的解决方案,允许用户通过拖放操作对组织结构或菜单进行自由排序。这种交互式菜单系统在网页应用中尤其常见,例如在企业内部管理系统或复杂的网站...

    Android 多级部门树(支持无限级),支持部门级别多选

    在Android开发中,构建一个可多级选择的部门树结构是一项常见的需求,尤其在企业级应用中,用于组织架构的展示和管理。本项目提供的解决方案是"Android 多级部门树(支持无限级),支持部门级别多选",它允许用户在...

    组织机构树形列表实现-源代码

    在IT领域,组织机构树形列表是一种常见的数据结构,它用于表示组织或部门之间的层级关系。这个"组织机构树形列表实现-源代码"很可能是为了解决在应用程序中展示和管理这种层次结构的需求。这类功能广泛应用于企业...

    element-tree 实现部门-人员选择(支持ID相同)

    element-tree 实现部门-人员选择(支持ID相同)

    组织结构_js_树_组织机构_

    在这个场景下,"组织结构_js_树_组织机构_"的标题暗示了我们正在讨论如何使用JavaScript(特别是jQuery库)来创建一个树状图,以展示组织内部的部门、职位和人员关系。这个树形结构有助于用户直观地理解组织的层次...

    jQuery可任意拖拽排序机构菜单树.zip

    本项目“jQuery可任意拖拽排序机构菜单树”利用jQuery的特性,实现了用户可以自由拖动菜单项来调整菜单树的顺序,这种功能在组织架构展示、权限管理或内容管理系统中非常常见。 首先,我们要理解这个项目的核心概念...

    横向树和组织结构图

    在实际应用中,横向树和组织结构图可以结合使用,例如,在企业管理系统中,横向树可以用来展示各个部门的横向关系,而组织结构图则呈现每个部门内的人员垂直层级。开发者需要根据具体需求选择合适的库,编写...

    组织机构算法

    组织机构算法 本文主要介绍了组织机构数据库设计中的一种高效算法...预排序遍历树算法是一种高效的组织机构数据库设计算法,能够高效地存储和查询组织机构的树形结构数据,解决了组织机构数据库设计中的一个重要问题。

    ExtJs_树形机构封装使用说明

    以下是一个具体的使用示例,展示了如何构建一个具有初始选择项的部门树: ```javascript // 构造树形对象 var tmptt = new createtree(); // 设置单值匹配过滤器,匹配所有`nodeFlag`属性为`org`的节点 var sl2 = ...

Global site tag (gtag.js) - Google Analytics