组织机构树设计

J2EE 码拜 9年前 (2015-04-22) 3090次浏览 0个评论

组织机构树设计
真实的深度要更大

以前的设计
dept表:组织机构表
dept_id   dept_name   parent_id(父id)
user表
user_id  dept_id(用户对应的部门)  username
利用 dept_id,parent_id进行关联,形成一棵树。但有个问题比如找a-1机构下的所有用户,无法用一个sql表示,不方便分页,条件检索等
现在的想法是加一个表,将一个节点所有的子节点列出.    大家有什么意见?
high_dept(高级机构)   low_dept(低级机构)  distance(相差的度)
a-1                                            a-1-1                                        1
a-1                                             a-1-1-1                                     2
a-1-1                                         a-1-1-1                                    1

组织机构树设计
60分
很麻烦的做法。
简单的只需要在原表里加一列就行了:

组织机构简洁字段设计:

(ogran_code是组织机构唯一代码,真正的系统里都会有这东西的)

id,name,ogran_code,parent_id

快速查询字段设计:

id,name,ogran_code,parent_id,code_link

(code_link是从根到该机构的整个code链条,例如: “root_code”+”first_code”+”child_code”)
分隔符自定义即可
添加编辑机构时只关注该机构的父机构,在父机构的link上添加本机构的部分:  “pareat_code_link”+”local_code”

任何查询都可以通过这个字段快速完成。

1,某机构所有子机构,查询所有包含某机构CODE的CODE_LINK即可。可以使用like,超级简单。
2,查询Level,拆分该字段即可。

总之,很方便记录的一个链路LINK,可以做到任意需要递归才可以完成的查询。

组织机构树设计
引用 1 楼 zwei2012 的回复:

很麻烦的做法。
简单的只需要在原表里加一列就行了:

组织机构简洁字段设计:

(ogran_code是组织机构唯一代码,真正的系统里都会有这东西的)

id,name,ogran_code,parent_id

快速查询字段设计:

id,name,ogran_code,parent_id,code_link

(code_link是从根到该机构的整个code链条,例如: “root_code”+”first_code”+”child_code”)
分隔符自定义即可
添加编辑机构时只关注该机构的父机构,在父机构的link上添加本机构的部分:  “pareat_code_link”+”local_code”

任何查询都可以通过这个字段快速完成。

1,某机构所有子机构,查询所有包含某机构CODE的CODE_LINK即可。可以使用like,超级简单。
2,查询Level,拆分该字段即可。

总之,很方便记录的一个链路LINK,可以做到任意需要递归才可以完成的查询。

   加link字段,学习了!


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明组织机构树设计
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!