组织机构是典型的层次树结构表,以下就以组织为例开始分析
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移动端开发中,部门树展示是一种常见的需求,它用于组织结构的呈现,比如公司内部的部门架构、员工层级关系等。这种功能通常应用于企业内部管理系统或者协作平台,便于用户快速查找和理解组织结构。下面我们将...
在IT领域,尤其是在数据库管理和数据结构的设计中,"获取树的下级所有和上级所有"是一个常见的需求。这个任务通常涉及到层次数据结构的处理,尤其是树形结构。在SQL(结构化查询语言)中,这样的操作可以用于组织...
在“机构人员树”示例中,ZTree被用来展示公司或组织的部门结构,并且能够选择或操作相关的员工。 首先,让我们了解一下ZTree的基本用法。ZTree的核心是JSON数据格式,它通过Ajax从服务器获取数据并渲染成树状结构...
"部门或人员下拉框树形"是一种常见的UI元素,它将传统的下拉框与树形结构相结合,以提供更直观、高效的筛选和选择体验。这个设计尤其适用于组织结构复杂、部门或人员众多的企业系统,用户可以通过展开和折叠节点来...
在Vue.js框架中实现组织机构树是一个常见的需求,主要用于展示公司、部门或项目中的层级关系。Vue的灵活性和组件化特性使得构建这种交互式的树结构变得相对简单。在这个项目中,我们看到几个关键的文件,如`兼容老...
在Java开发中,构建部门树形结构是一种常见的需求,它通常用于组织机构管理、权限分配等场景。这个项目从jsp、js、css前端界面设计,到后端的DAO层、Service层、Controller层的实现,提供了完整的开发流程,旨在帮助...
"orgChar组织机构树"是一种专门用于展示组织结构或流程关系的图形化工具,它以树状的形式将各个部门和人员层次清晰地呈现出来。在IT领域,这种数据可视化技术常用于企业管理、项目协调和权限分配等方面,因为它可以...
【描述】"机构树jquery_zTree"暗示了这个项目可能用于展示企业的组织架构,例如部门、员工之间的层级关系。zTree不仅适用于机构树,还可以应用于文件目录浏览、权限管理等多种场景,具有良好的用户体验和性能优化。 ...
"组织机构树"通常会涉及到数据的动态加载和处理,这可能需要利用Vue的数据绑定和计算属性。例如,数据可以通过API获取,然后在Vue实例的data对象中存储,计算属性可以用来处理数据,比如决定哪些节点应该被展开或...
在IT行业中,构建组织结构图或组织机构树是常见的需求,尤其在企业级应用中,用于展示员工、部门等关系。`ecotree.js`是一个专门用于创建组织机构树的JavaScript库,它提供了轻量级且高效的方法来展示层次化的数据。...
本资源“jQuery可任意拖拽排序机构菜单树.rar”提供了一个功能强大的解决方案,允许用户通过拖放操作对组织结构或菜单进行自由排序。这种交互式菜单系统在网页应用中尤其常见,例如在企业内部管理系统或复杂的网站...
在Android开发中,构建一个可多级选择的部门树结构是一项常见的需求,尤其在企业级应用中,用于组织架构的展示和管理。本项目提供的解决方案是"Android 多级部门树(支持无限级),支持部门级别多选",它允许用户在...
在IT领域,组织机构树形列表是一种常见的数据结构,它用于表示组织或部门之间的层级关系。这个"组织机构树形列表实现-源代码"很可能是为了解决在应用程序中展示和管理这种层次结构的需求。这类功能广泛应用于企业...
element-tree 实现部门-人员选择(支持ID相同)
在这个场景下,"组织结构_js_树_组织机构_"的标题暗示了我们正在讨论如何使用JavaScript(特别是jQuery库)来创建一个树状图,以展示组织内部的部门、职位和人员关系。这个树形结构有助于用户直观地理解组织的层次...
本项目“jQuery可任意拖拽排序机构菜单树”利用jQuery的特性,实现了用户可以自由拖动菜单项来调整菜单树的顺序,这种功能在组织架构展示、权限管理或内容管理系统中非常常见。 首先,我们要理解这个项目的核心概念...
在实际应用中,横向树和组织结构图可以结合使用,例如,在企业管理系统中,横向树可以用来展示各个部门的横向关系,而组织结构图则呈现每个部门内的人员垂直层级。开发者需要根据具体需求选择合适的库,编写...
组织机构算法 本文主要介绍了组织机构数据库设计中的一种高效算法...预排序遍历树算法是一种高效的组织机构数据库设计算法,能够高效地存储和查询组织机构的树形结构数据,解决了组织机构数据库设计中的一个重要问题。
以下是一个具体的使用示例,展示了如何构建一个具有初始选择项的部门树: ```javascript // 构造树形对象 var tmptt = new createtree(); // 设置单值匹配过滤器,匹配所有`nodeFlag`属性为`org`的节点 var sl2 = ...