首页 新闻 会员 周边 捐助

层级设计(如何高效的存储树结构)

0
悬赏园豆:20 [已解决问题] 解决于 2015-01-20 16:16

一个公司有多个部门,部门下面又有子部门,每个部门又有子部门(可能无线分支下去),每个部门有一个负责人,如何把它存到数据库中,使得查询 修改等高效。我现在有两种方法,感觉不是特别好。各位大神有没有更好的办法?

先把我的解决办法写出来:

1.数据库中每条记录表示一个部门,只保存其父节点,也就是他的上级。但这样如果查询其上级的上级就要两次,感觉查询的时候有点慢。

2.在数据库中保存冗余,就把其根节点 到其的路径存在本记录中,但是这样修改很麻烦。

鬼厉—的主页 鬼厉— | 初学一级 | 园豆:150
提问于:2015-01-20 11:21
< >
分享
最佳答案
0

用第一种发方法,数据量不可能很大,效率不用去考虑

第二种方法维护起来会很麻烦的

收获园豆:19
刘宏玺 | 专家六级 |园豆:14020 | 2015-01-20 12:50

在这方面有没更好的方法呢?

鬼厉— | 园豆:150 (初学一级) | 2015-01-20 12:53

@鬼厉—: 你可以直接使用树控件绑定数据

刘宏玺 | 园豆:14020 (专家六级) | 2015-01-20 12:54

@刘宏玺: 这是sql的 还是c#的

鬼厉— | 园豆:150 (初学一级) | 2015-01-20 12:56

@鬼厉—: 我倒没听过还有sql的控件,看你是窗口应用程序还是网站了,各有各的控件,使用方法都差不多

刘宏玺 | 园豆:14020 (专家六级) | 2015-01-20 12:58

@刘宏玺: 捆绑了之后,可以直接更新到数据库么?

鬼厉— | 园豆:150 (初学一级) | 2015-01-20 13:02

@鬼厉—: 你用了就知道了,你都没具体说用什么公司的什么技术的什么控件,我怎么会知道啊

刘宏玺 | 园豆:14020 (专家六级) | 2015-01-20 13:03

@刘宏玺: asp。net mvc 

鬼厉— | 园豆:150 (初学一级) | 2015-01-20 13:04

@鬼厉—: zTree比较好用,可以直接显示数据

刘宏玺 | 园豆:14020 (专家六级) | 2015-01-20 13:06

@刘宏玺: 想显示为这种树形结构

鬼厉— | 园豆:150 (初学一级) | 2015-01-20 13:09

@鬼厉—: http://www.ztree.me/v3/demo.php#_101

可以实现呢

刘宏玺 | 园豆:14020 (专家六级) | 2015-01-20 13:11

@刘宏玺: Ok 非常感谢你!

鬼厉— | 园豆:150 (初学一级) | 2015-01-20 13:15
其他回答(1)
0

我觉得可以用方法1,至于查上级的上级的问题,可以使用递归的sql,这样也是查询一次而已,因为部门数量不可能达到一万以上的,性能方面也应该不会太慢

收获园豆:1
诶碧司 | 园豆:1912 (小虾三级) | 2015-01-20 12:29

有没有更好一点的办法呢?

支持(0) 反对(0) 鬼厉— | 园豆:150 (初学一级) | 2015-01-20 12:53
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册