数据库中构建树形结构目录的方法

文档序号:6650703阅读:1194来源:国知局
专利名称:数据库中构建树形结构目录的方法
技术领域
本发明涉及一种数据库中构建目录的方法,具体的说是一种数据库中构建树形结 构目录的方法。
背景技术
在目前各领域的诸多应用系统中都需要对各类信息进行分级式目录管理,特别是 在大型系统中这种需求更为明显。在常见的分级结构中有树形结构、表格结构、层次结构 (如不断的弹出子窗口或子链接)或简单结构的组合等,其中树形结构因其能非常只管得 展现各数据间关系而被广泛使用。目前在数据库中对各信息建立树形关系的方法,通常需要在设计数据库时对每张 信息表都加入父节点字段信息以形成数据间的分级关系从而构建出树形结构。这样做的缺 占是·1、所有需要以树形结构展现的信息都要加入父节点字段的冗余信息。每项信息都 要从数据库表格到页面进行构建树形结构的处理,其中包含了大量的重复工作。2、当某种信息既需要树形结构展示管理,又需要以其他结构管理时,需要对数据 库进行特殊设计,如将一个表拆分为两个或多个关系紧密的表格来兼顾多种数据结构管理 的需要。这就极大的增加了设计难度,也增加了工作量和系统稳定性的风险。

发明内容
为了解决以上出现的缺点,本发明提供了一种在数据库构建树形结构目录的方 法,通过该方法构建目录树不再针对树形结构进行特殊处理,其数据库的信息表中也不需 要添加父节点等冗余信息,其设计也不需兼顾数据结构的约束,优化了存储空间,大大降低 了系统开发和维护的工作量。本发明的数据库中构建树形结构目录的方法,在数据库中建立通用的用于描述树 形结构的目录结构模块;和通用的描述树形结构中节点所关联信息的配置模块;构建树形结构时,先在所述 的目录结构模块和配置模块里存入要建立的树形结构所关联的信息,再结合目录结构模块 和配置模块里的所存信息,构建一个包含具体信息的树形结构目录。在数据库中建立通用的模块来建立树形模型,使各具体的信息表能够通过该模型 按统一的步骤形成树形的关联结构,由此对所有树形目录的修改/删除均只对该树形模型 进行操作,在由各具体信息表构成的具体信息单元中不再包含层次的关联信息,减少了数 据库冗余,不但提高了系统存储空间的使用率,还提高了系统的性能,在用户客户端生成树 结构目录的速度更快,维护更简单。在以上方案的基础上,所述的目录结构模块中包括通用的结构描述单元、通用的 节点描述单元和通用的关联单元;在所述结构描述单元中包含对树形结构目录的结构属性 的描述,所述节点描述单元中包含对树形结构目录的节点属性的描述,所述关联单元包含节点与节点所关联的具体信息的关联描述。通过树形结构属性和节点属性,能够完整地表 示出一个树形目录。一种优选的方案,配置模块中包括目录编码和具体信息单元名称的编码。配置模 块的作用是描述树形结构中各节点所关联的信息。这其中包括一个节点和该节点的枝叶节 点所关联的数据库中多个表名的描述,原因是目录树是由数据库的多个表组成的,如产品 节点包含产品表信息,其下属节点又包含产品的设备信息表和服务信息表等内容,这时就 要用配置模块记录这些信息,在构建目录树时通过查询这些信息进行相应的处理。更进一步,结构描述单元对树形结构的结构属性描述包括目录编码、目录树总的 分级数和任一级目录的节点数;节点描述单元对树形结构中任一节点的属性描述包括目录 编码、节点编码和父节点编码;关联单元中对节点与节点所示具体信息的关联描述包括节 点编码、具体信息单元名称的编码和具体信息单元中的记录编码。因为在整个数据库的记 录中目录编码和节点编码均是不重复的,也就是具有唯一性,因此节点通过目录编码属性 与目录结构模块的记录形成了多对一的关系,再通过节点编码和父节点编码使各节点在数 据库中形成了分级的关联关系。节点所示的具体信息通过关联单元中节点编码属性与目录 树中的节点关联,各节点通过关联单元中具体信息单元名称的编码属性找到记载具体信息 的数据库表,最后由关联单元的具体信息记录编码属性与一条具体信息相关联,形成树形 结构中从干到叶的完整体系。一种优选的构建树形结构目录的方式包括步骤在所述目录结构模块中先通过所述的结构描述单元确定目录树的结构模型;通过配置模块与具体信息单元关联;通过对所述的节点描述单元经递归算法构建出具体的目录树结构;在构建节点时,根据配置模块关联的具体信息单元,通过关联单元将该节点与在 该具体信息单元中的具体信息相关联。当客户端上调用数据库构建目录树时,可以采用一次性将整个目录树构建出来, 这种方式对数据库负担以及内存的消耗都是比较大的。因此也可以采用异步调用的方式 来构建目录树,其基本过程为首次构建目录树时,只构建出第一级目录,当在客户端发出查 询该级一下目录或内容的指令时,系统再次调用数据库,构建出第二级目录或内容,以此类 推。很显然,以这种方式构建目录树时数据库和内存的符合都是最小化的,节省了资源,其 客户端的响应速度也得以提高。为了使构建目录树的过程更优化,在构建树形结构目录时,先检查所述配置模块 中是否有要构建的目录树的相关信息,如果有则继续执行;否则停止执行并要求对配置模 块中的信息进行配置。配置模块中记录了在构建目录树时要处理的诸多基础信息,如果没 有这些信息,目录树可能无法构建或构建错误,因此在构建目录树时应该首先确保配置模 块中是否有相应的信息。基于上述原因,在构建目录树前系统应对所需的各种信息进行检 查,如果缺少某些基础信息,系统会提示对这些信息进行补充后再构建目录树,以此方式来 保证目录树能正确构建。进一步优选的方案为,在所述的目录结构模块和配置模块中包括有对辅助信息的 描述。除了在数据库表中记录必要的信息外,辅助信息的记录将进一步简化构建目录树的 过程,从而更加快捷地构建出目录树。由上述可知,目录结构模块中包括了通用的结构描述
4单元、通用的节点描述单元和通用的关联单元。其中通用的结构描述单元的辅助信息包括 地区、图片和/或备注等;通用的节点描述单元的辅助信息包括顺序号(处理一个父节点下 多个子节点时的前后顺序)、描述和/或名称等;通用的关联单元的辅助信息包括顺序号和 /或描述等。配置模块的辅助信息包括描述、树结构模式(单表模式或多表模式)、特殊条 件(描述树结构的特殊情况,如某种情况节点添加两条,或者必须是叶子节点)和/或备 注等。由此可以理解,各模块中的辅助信息描述可以包含更丰富的信息,其目的是为了能够 适应各种形式的目录树和更快捷准确地构建出目录树。按照数据库设计原则,目录结构模块和配置模块里的各数据库表均设有主键字 段。主键是指在数据库表中具有不重复和唯一性的一列数据,其目的是在对该表进行操作 时,能够通过主键字段与唯一一条数据相对应。通常的主键是由递增的整数或具有规律性 变化的字符串构成。传统的目录树在构建时需要对所有的数据库表进行树结构的字段设置,这样不但 使数据库内存在大量的冗余浪费了存储空间,还使得在对目录树进行整体修改时非常困 难,例如要将目录树中所有节点的文字加上图标,就需要对所有的相关表和记录进行修改, 工作量之大可想而知,并且因为数据库中各种数据的繁琐,在对树结构等修改时很容易出 现错误。如果相同的信息内容需要有多种表示方式,如表格等,数据库的设计将非常困难, 并且也将存在更大量的冗余数据,这对各种资源而言都是极大的浪费。而通过本发明的方 法构建的目录树所有的信息表都通过通用的模块来构建树形结构,数据库表内容则简介单 一,不再有大量的冗余数据,极大程度提高了存储空间的利用率和系统效率,并且在数据库 设计和修改中也减少了大量的重复工作。同样是上面要将目录树中所有节点的文字加上图 标的例子,用本发明的方法只需要将通用的结构描述单元的“图片”字段修改为“真”即可, 非常便捷。即使要对相同的信息内容进行多种表示方式,也不用对信息表进行修改,只用添 加相应的通用模块,大大简化了开发难度。由此可以理解,通过本发明的方法来构建数据库的树形结构目录,不再针对树形 结构进行特殊处理,其数据库的信息表中也不需要添加父节点等冗余信息,其设计也不需 兼顾数据结构的约束,极大得提高了硬盘和/或缓存等存储空间的利用率,明显得降低了 系统开发和维护的工作量,增强了系统的稳定性。以下通过实施例的具体实施方式
,对本发明的上述内容再作进一步的详细说明。 但不应将此理解为本发明上述主题的范围仅限于以下的实例。在不脱离本发明上述技术思 想情况下,根据本领域普通技术知识和惯用手段做出的各种替换或变更,均应包括在本发 明的范围内。
具体实施例方式本发明的数据库中构建树形结构目录的方法,在数据库中建立通用的用于描述树 形结构的目录结构模块;和通用的描述树形结构中节点所关联信息的配置模块;其中在目录结构模块中包括 通用的结构描述单元、通用的节点描述单元和通用的关联单元;在所述结构描述单元中包 括了主键、目录编码、对目录树总的分级数和任一级目录的节点数的描述,还包括对目录树 的所示地区、图片和/或备注等辅助信息的描述;节点描述单元对目录树中任一节点的描述包括主键、目录编码、节点编码和父节点编码,还包括对顺序号(处理一个父节点下多个 子节点时的前后顺序)、描述和/或名称等辅助信息的描述;关联单元中描述了节点与节点 所示具体信息之间的关联关系,包括了主键、节点编码、具体信息单元名称的编码和具体信 息记录编码,还包括节点顺序号和/或描述等辅助信息。配置模块的作用是描述树形结构中各节点所关联的信息,因此在配置模块中包括 了对目录编码和具体信息单元名称的编码的基本描述,此外还包括了一个节点和该节点的 枝叶节点所关联的数据库中多个表名描述的辅助信息包括描述、树结构模式(单表模式或 多表模式)、特殊条件(描述树结构的特殊情况,如某种情况节点添加两条,或者必须是叶 子节点)和/或备注等。目录结构模块中的目录编码和节点描述单元中的节点编码在整个数据库的记录 中均是不重复的,也就是具有唯一性,因此节点通过目录编码属性与目录结构模块的记录 形成了多对一的关系,再通过节点编码和父节点编码使各节点在数据库中形成了分级的关 联关系。节点所示的具体信息通过关联单元中节点编码属性与目录树中的节点关联,各节 点通过关联单元的具体信息单元名称的编码属性找到记载具体信息的数据库表,最后由关 联单元的具体信息记录编码属性与一条具体信息相关联,形成树形结构中从干到叶的完整 体系。在构建树形结构目录时,先检查所述配置模块中是否有要构建的目录树的相关信 息,如果有则继续执行;否则停止执行并要求对配置模块中的信息进行配置。配置模块中记 录了在构建目录树时要处理的诸多基础信息,如果没有这些信息,目录树可能无法构建或 构建错误,因此在构建目录树时应该首先确保配置模块中是否有相应的信息。基于上述原 因,在构建目录树前系统应对所需的各种信息进行检查,如果缺少某些基础信息,系统会以 如对话框等形式提示对这些信息进行补充后再构建目录树,以此方式来保证目录树能正确 构建。当系统确认有足够的构建条件后,调用目录结构模块,先通过通用的结构描述单元确 定目录树的结构模型,结构描述单元通过目录编码属性关联到配置模块中的记录信息,由 该记录信息中具体信息单元名称的编码关联与节点相关的具体信息单元,再通过对通用的 节点描述单元经递归算法构建目录树的各节点。在构建节点时,结合上述的配置模块所关 联的具体信息单元,通过关联单元中的节点编码属性和具体信息单元中的记录编码属性, 将该节点与具体信息单元中的具体信息相关联,构建出完整的树形结构目录。
权利要求
1.数据库中构建树形结构目录的方法,其特征为在数据库中建立通用的用于描述树形 结构的目录结构模块;和通用的描述树形结构中节点所关联信息的配置模块;构建树形结构时,先在所述的目 录结构模块和配置模块里存入要建立的树形结构所关联的信息,再结合目录结构模块和配 置模块里的所存信息,构建一个包含具体信息的树形结构目录。
2.如权利要求1所述的数据库中构建树形结构目录的方法,其特征为在所述的目录结 构模块中包括通用的结构描述单元、通用的节点描述单元和通用的关联单元;在所述结构 描述单元中包含对树形结构目录的结构属性的描述,所述节点描述单元中包含对树形结构 目录的节点属性的描述,所述关联单元包含节点与节点所关联的具体信息的关联描述。
3.如权利要求1所述的数据库中构建树形结构目录的方法,其特征为在所述的配置模 块包括目录编码和具体信息单元名称的编码。
4.如权利要求2所述的数据库中构建树形结构目录的方法,其特征为结构描述单元对 树形结构的结构属性描述包括目录编码、目录树总的分级数和任一级目录的节点数;所述 节点描述单元对树形结构中任一节点的属性描述包括目录编码、节点编码和父节点编码; 所述关联单元中对节点与节点所示具体信息的关联描述包括节点编码、具体信息单元名称 的编码和具体信息单元中的记录编码。
5.如权利要求2至4之一所述的数据库中构建树形结构目录的方法,其特征为包括步骤在所述目录结构模块中先通过所述的结构描述单元确定目录树的结构模型;通过配置模块与具体信息单元关联;通过对所述的节点描述单元经递归算法构建出具体的目录树结构;在构建节点时,根据配置模块关联的具体信息单元,通过关联单元将该节点与在该具 体信息单元中的具体信息相关联。
6.如权利要求1所述的数据库中构建树形结构目录的方法,其特征为在构建树形结构 目录时,先检查所述配置模块中是否有要构建的目录树的相关信息,如果有则继续执行;否 则停止执行并要求对配置模块中的信息进行配置。
7.如权利要求1至6之一所述的数据库中构建树形结构目录的方法,其特征为在所述 的目录结构模块和配置模块中包括有对辅助信息的描述。
8.如权利要求7所述的数据库中构建树形结构目录的方法,其特征为目录结构模块和 配置模块里的各数据库表均设有主键字段。
全文摘要
本发明的数据库中构建树形结构目录的方法,涉及一种数据库中构建树形结构目录的方法。通过在数据库中建立通用的用于描述树形结构的目录结构模块;和通用的描述树形结构中节点所关联信息的配置模块;构建树形结构时,先在所述的目录结构模块和配置模块里存入要建立的树形结构所关联的信息,再结合目录结构模块和配置模块里的所存信息,构建一个包含具体信息的树形结构目录。通过本发明的方法构建数据库的树形结构目录,减少了数据存储空间中大量的冗余数据,使各信息表能够方便适应各种分类结构。极大得提高了硬盘和/或缓存等存储空间的利用率,明显得降低了系统开发和维护的工作量,增强了系统的稳定性。
文档编号G06F17/30GK102096711SQ20111002514
公开日2011年6月15日 申请日期2011年1月24日 优先权日2011年1月24日
发明者潘登峰, 蒋伟 申请人:四川长虹电器股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1