- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于单表结构的Web动态树设计与实现.doc
基于单表结构的Web动态树设计与实现
摘 要:在Web系统开发过程中,如何更直观显示具有层级关系的信息备受关注。树型结构因其结构性强、层次性好、使用方便等特点在Web系统开发中得到了广泛应用。介绍了树型结构原理和树型结构在关系型数据库中的表示,阐述了一种基于单表结构的Web动态树设计与实现。这种树型结构简单、直观、易于数据组织,简化了数据库的设计过程,在Web系统开发中效果良好。
关键词:树型结构;关系数据库;层次关系;Web动态树
DOIDOI:10.11907/rjdk.161997
中图分类号:TP391
文献标识码:A 文章编号文章编号2016)011017003
0 引言
树型结构是一种非常重要的非线性数据结构,具有结构清晰、层次分明、操作方便等优点,在系统开发中应用广泛,如:Windows的资源管理器、文件系统中的文件管理、数据库中的索引等,都采用了树型结构[1]。随着互联网的迅速发展,树型结构在B/S结构系统开发中得到越来越广泛的应用。在Web页面上实现树型目录,既可简化创建、管理和维护工作,又可为浏览站点用户带来方便,将信息以更直观的层次结构展现给用户,充分利用了计算机屏幕空间。
目前在互联网上广泛应用的树型结构有两种:静态结构和动态结构。静态结构使用最多,实现简单,但它不能根据信息的变化改变树的结构和内容,因此无法反映信息变化,所以静态结构主要用于系统功能层次或固定组织结构表达中;而动态结构中树节点可以根据信息变化需要进行动态增删操作,可以展现动态的数据分类、组织机构等,但是实现相对复杂。
在动态树型结构的数据结构表达中,多数系统采用的是父子关系表的多表结构存储,表达动态树节点信息。这种方法虽然能不限层次地增加节点,但由于在进行统计分析等计算操作时,必须使用递归过程[2]致使计算过程十分复杂。本文将详细介绍使用单表结构来实现多级动态树[3]方法。
1 树型结构原理
树型结构主要由根节点、叶子节点和分支节点组成。任何没有上一级节点即没有父辈节点的节点是根节点;任何没有下一级节点即没有子女节点的节点是叶子节点;既不是叶子节点也不是根节点的为分支节点。一棵树只有一个根节点,分支节点可以有下一级分支节点,一个节点所有子树中的节点为该节点的子孙节点。树型结构中每个节点包含以下信息[4]:①节点自身信息;②双亲节点信息;③孩子节点信息,见图1。
由上述定义可看出:在树型结构中,树由多个子树构成,子树由一些更小的子树构成。总而言之,一个节点可以有0、1个或多个子节点,除根节点没有父节点[5]外,其余节点有且只有一个父节点。
关系数据库[6](Relational Database ,简称RDB)已成为数据库产品的主流。关系数据库是将数据按表结构形式组织,而树型结构是一种非线性的数据结构。显然,树与表格在结构上有很大差别,若把具有树结构的数据简单线性排列起来,就不能体现数据间的父子关系(层次关系),意味着信息的丢失。因此,在关系型数据库中需要解决如何把非线性数据线性化排列且保留数据间的原有关系问题。
在关系型数据库中通常采用下面几种表示树的方法[7]:①字段表示法;②代码表示法;③静态指针表示法。
本文采用一种新的表示法,这种表示法是对代码表示法的一种变型。代码段的宽度根据树的层次不同而不同(根结点一般是一个全局结构描述的节点,可以用一个静态节点表示,本文使用静态节点处理)。
例如:某树的层次结构是** *** *** *** ***,用空格来区分树型结构层次,用*表示每个层次的代码段宽度。这个层次结构有4个空格,说明这个树型结构层次是5层。第一层代码段的宽度是2,第二层代码段的宽度是3,第三层代码段的宽度是4,依此类推可以得出每一层代码段的宽度。为了更好地表示树型结构的层次关系,本文把当前层次节点以上的层次节点代码宽度都加到当前层次代码宽度上,修改后的层级代码宽度为:第一层代码宽度是2,第二层代码宽度是5,第三层代码宽度是8,第四层代码宽度是11,第五层代码宽度是14。
根据这个层次结构,第一级节点可以用01表示,第二级节点可以用01001表示(前两位01表示当前节点的父节点),第三级节点可以示(前五位01001表示当前节点的父节点),以此类推。这样不仅可以更直观地表示父节点、子节点及当前节点结构,还可以直观表示出树的层次关系。下面以部门为例对这种表示法进行说明。
2 动态树实现
2.1 数据库设计
为了记录节点变化,本文以数据库为载体。数据库中数据表至少要有以下字段:节点编号、节点名称、节点说明、节点代码,这些是构建树结构所必须的信息。建立数据表如表1所示
您可能关注的文档
最近下载
- 刘芳——本科论文初稿.doc VIP
- 安全培训记录效果评估表全员法律法规培训.docx VIP
- 3.4 透镜的应用(分层练习)2024-2025学年八年级物理上册同步精品课堂(苏科版2024)(解析版).docx VIP
- 《二年级上册美术折纸动物》ppt课件讲义.ppt
- BS EN 16120-2-2017Non-alloy 国外国际标准规范.pdf
- 精卫填海成语神话故事.pptx VIP
- 【生物】蛋白质相关计算课件 2023-2024学年高一上学期生物人教版必修1.pptx VIP
- 四位一体农村长效保洁方案(标书——已中标) .pdf VIP
- 人教版九年级上册化学第六单元测试卷.doc VIP
- 2025届高考语文复习:叠词的作用和表达效果+课件.pptx VIP
文档评论(0)