一种基于数据库的动态Web权限树快速生成方法
2012-09-03万其明韩志军杨艳萍
景 民, 万其明, 韩志军, 杨艳萍
(1.61001部队,北京 100093;2.国防大学 信息作战与指挥训练教研部,北京 100091;3.中山职业技术学院,广东 中山 528404;4.海军装备研究院,北京 100036)
树形显示(TreeView)很适合表现具有分支和层次联系的数据,如操作系统中的目录树,信息系统的行政区划导航树,安全控制系统中的访问权限树等,因此在系统开发中,经常使用树形结构来显示和存储层次数据。树形结构的算法和实现也是计算机工程的一个研究热点:文献[1]比较了在内存中生成目录树的2种算法的效率,结论是深度优先算法(Depth-First Algorithm,简称DFA)比 直 接 插 入 算 法 (Insert-into-Tree Algorithm,简称ITA)在给定试验中效率高2~3倍;文献[2]提出了一种生成目录树的快速算法,该算法以先根遍历(preorder traversal)顺序预先将目录数据存入数据库中,然后支持对数据库一次访问快速生成目录树;文献[3]提出一种在 Web中生成动态目录树的方法,实现了在Web中树形显示,利用链表预先将数据库中的目录数据读入内存,并采用ITA算法完成目录树的生成;文献[4]介绍了一种窗体编程工具提供的TreeView控件,并演示了利用该控件读取数据库中的目录树结构;文献[5]介绍了ASP.NET中提供的TreeView控件,采取先根顺序预先将目录数据存在数据库,并采用DFA算法实现了动态目录树的生成。
本文以某大型通用档案文献系统(DAG)的开发为背景,重点研究了基于数据库的动态Web角色权限树的设计和实现,如图1所示。DAG系统管理档案全宗有上百种,但测试用户11111111仅能看到其中3个全宗的文书档案信息和部分科技档案和专门档案。……