如何为用户提供不同的组织机构树

shinner 2007-11-28 03:21:43
需求如下
1,用户隶属于组织
2,组织机构以树型式呈现
3,用户查看时,根据其权限,只能查看到整个组织树的子树,不能看到其他组织节点
4,可以方便的修改用户查看组织机构树的权限

开发平台为
ASP.net 2.0 和Oracle10g

使用TreeView呈现树

我现在想到3个方案

方案1
使用Oracle XML数据库,这部分知识我不了解,我现在想就是使能不能把给每个用户都定义一个组织架构XML文件,然后直接存在Oracle数据库里,跟用户做关联.
不知道是否可行,效率如何.还请赐教

方案2
为每个用户的组织架构保留一个XML文件在服务端,每个XML文件只保留一个用户的组织机构树信息.使用数据库记录用户和其对应的XML文件路径及文件名,直接把这个XML文件作为组织机构树的数据源.
我觉得这个方法最为简单,但是不知道性能如何:比如当用户访问量大的时候,性能如何,会不会遇到问题?作为文件存储,安全性又如何等等

保留的XML如下,通过这样的结构,可以方便的添加属性,

<Org name="集团" guid="">
<Org name="建设一公司" guid="">
<Org name="机关" guid="">
</Org>
<Org name="经理部" guid="">
</Org>
<Org name="财务部" guid="">
</Org>
<Org name="人事行政部" guid="">
</Org>
<Org name="项目一" guid="">
</Org>
<Org name="项目二" guid="">
</Org>
<Org name="项目三" guid="">
</Org>
</Org>
<Org name="建设二公司" guid="">
</Org>
<Org name="投资公司" guid="">
</Org>
<Org name="管理公司" guid="">
</Org>
</Org>

方案3
使用程序遍历生成:
需要添加表格记录用户可以查看的部门根节点,子接点需要通过程序遍历生成.如果有多个根(用户查看到的根并不一定是整个组织机构树的根,因此用户可能查看到多个根节点)的情况,需要追溯其上级节点,最后生成一整课组织机构树
使用这种方法,需要维护表,添加数据,程序开发的难度大.但使用Orecle表存储,安全性有保证.多用户并发访问也比较安全
我不知道这种办法由于需要对树进行遍历,性能影响如何

还请有这方面经验的高手指点,或者某一方面有什么不足和您有什么建议,望多多提出啊!小弟写过了!!
...全文
171 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
ttg520 2007-11-28
  • 打赏
  • 举报
回复

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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