组织机构树设计

中华雪碧 2014-06-30 03:32:18

真实的深度要更大

以前的设计
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
...全文
1576 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
中华雪碧 2014-06-30
  • 打赏
  • 举报
回复 1
引用 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字段,学习了!!
zwei2012 2014-06-30
  • 打赏
  • 举报
回复
很麻烦的做法。 简单的只需要在原表里加一列就行了: 组织机构简洁字段设计: (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,可以做到任意需要递归才可以完成的查询。

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧