首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

组织机构树

2012-09-20 
部门机构树组织机构是典型的层次树结构表,以下就以组织为例开始分析1. 部门机构树如下┌───────────────││

部门机构树
组织机构是典型的层次树结构表,以下就以组织为例开始分析





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

热点排行