CN101339568B - 一种构建数据树的方法和装置 - Google Patents
一种构建数据树的方法和装置 Download PDFInfo
- Publication number
- CN101339568B CN101339568B CN2008102130432A CN200810213043A CN101339568B CN 101339568 B CN101339568 B CN 101339568B CN 2008102130432 A CN2008102130432 A CN 2008102130432A CN 200810213043 A CN200810213043 A CN 200810213043A CN 101339568 B CN101339568 B CN 101339568B
- Authority
- CN
- China
- Prior art keywords
- data
- node
- tree
- lower floor
- data tree
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种构建数据树的方法和装置。所述方法包括:接收点击指令;获取所述点击指令对应结点的下层数据;利用所述下层数据构建数据树的所述结点的下层结点。所述装置包括:接收单元,用于接收点击指令;第一获取单元,用于获取所述点击指令对应结点的下层数据;第一构建单元,用于利用所述下层数据构建数据树的所述结点的下层结点。本发明实施例采用的技术方案由于是根据用户指令动态的获取数据,构建数据树的相应部分,构建数据树的速度快,可以明显的缩短用户浏览的等待时间,进而使得用户有更好的体验。
Description
技术领域
本发明涉及数据处理技术领域,具体涉及一种构建数据树的方法和装置。
背景技术
在数据库系统中,多层关联的数据是数据库中常见的数据类型,例如某公司的职工结构数据,若干个职工可以归属于某个科室,若干个科室又可以归属于某个部门。职工与科室关联,科室与部门关联,职工、科室、部门就形成了多层关联的数据类型。
当用户需要浏览多层关联数据时,通常将多层关联数据以数据树的形式向用户展示,具体是在接收到用户浏览指令后,一次性的从数据库中取出多层关联的全部数据,根据多层关联数据的层次关系构建好数据树,并可以向用户展示构建好的数据树。
在对现有技术的研究和实践过程中,本发明的发明人发现,当多层关联数据的层次关系比较复杂、数据量比较大时,构建数据树的时间会比较长,导致用户浏览可能需要等待很长的时间,进而极大的影响用户的体验。
发明内容
本发明实施例提供一种构建数据树的方法和装置,能够提高构建数据树的效率,极大的缩短用户浏览的等待时间,进而使得用户有更好的体验。
为解决上述技术问题,本发明实施例通过以下技术方案具体实现:
本发明实施例提供的一种构建数据树的方法,包括:接收点击指令;获取所述点击指令对应结点的下层数据;利用所述下层数据构建数据树的所述结点的下层结点。
所述接收点击指令之前还包括:获取多层关联数据的第一层数据;利用所述第一层数据构建数据树的第一层结点。
所述获取所述点击指令对应结点的下层数据具体为:在数据库中获取父结点为所述点击指令对应结点的相应内码的所有数据。
所述获取所述点击指令对应结点的下层数据具体为:在数据库中获取父结点为所述点击指令对应结点相应的内码,且层数为所述结点相应层数递增后的层数的所有数据。
所述利用所述下层数据构建数据树的所述结点的下层结点具体为:通过平台控件,利用所述下层数据构建数据树的所述结点的下层结点。
本发明实施例提供的一种构建数据树的装置,包括:接收单元,用于接收点击指令;第一获取单元,用于获取所述点击指令对应结点的下层数据;第一构建单元,用于利用所述下层数据构建数据树的所述结点的下层结点。
所述装置还包括:第二获取单元,用于在接收单元接收点击指令之前获取多层关联数据的第一层数据;第二构建单元,用于利用所述第一层数据构建数据树的第一层结点。
所述第一获取单元具体用于在数据库中获取父结点为所述点击指令对应结点的相应内码的所有数据。
所述第一获取单元具体用于在数据库中获取父结点为所述点击指令对应结点相应的内码,且层数为所述结点相应递增后的层数的所有数据。
所述第一构建单元具体用于通过平台控件,利用所述下层数据构建数据树的所述结点的下层结点。
可以看出,本发明实施例采用技术方案中,由于是在接收到点击指令后,在数据库中动态的获取相应结点的下层数据,获取数据的时间短;由于只是构建数据树的所述结点的下层结点,相应构建的速度快,极大的缩短了用户浏览的等待时间,进而使得用户得到更好的体验。
附图说明
图1是本发明实施例一提供的一种构建数据树的方法流程图;
图2是本发明实施例二提供的一种构建数据树的方法流程图;
图3是本发明实施例二提供的一种多层关联数据的关联示意图;
图4是本发明实施例二提供的一种数据树的展开示意图;
图5是本发明实施例二提供的一种数据树的展开示意图;
图6是本发明实施例二提供的一种数据树的展开示意图;
图7是本发明实施例三提供的一种构建数据树的装置示意图。
具体实施方式
本发明实施例提供一种构建数据树的方法和装置。能够有效的提高构建数据树的效率,明显缩短用户浏览的等待时间,使得用户有更好的使用体验。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面结合附图和具体实施例对本发明进一步详细的说明。
本发明实施例的技术方案中,根据用户点击指令动态的获取相应结点的下层数据,构建数据树的相应结点的下层结点,并可以向用户展示构建的数据树。
实施例一、
参见图1,是本发明实施例一提供的一种构建数据树的方法流程图,具体可以包括:
步骤110、接收点击指令;
接收用户的结点点击指令,也可以接收用户的图标点击指令。
步骤120、获取所述点击指令对应结点的下层数据;
可以以各种参数为获取条件,在数据库中获取所述点击指令对应结点的下层数据,例如父结点,层数,内码等参数。
步骤130、利用所述下层数据构建数据树的所述结点的下层结点。
通过软件平台的控件,可以方便的利用所述下层数据构建数据树的所述结点的下层结点。当用户需要查看各层数据时,可以重复执行步骤110至130。
实施例二、
参见图2,是本发明实施例二提供的一种构建数据树的方法流程图,具体可以包括:
步骤201,从数据库中获取第一层数据,构建数据树的第一层;
计算机系统通常将数据存储在数据库中,一个数据也可以称为一条记录。单个的数据可以包含与其它数据的关联信息,各个数据可以形成数据网,数据树等等。
为了方便用户点击查看,可以先从数据库中获取多层关联数据的第一层数据(例如,数据树的根数据),并利用第一层数据构建数据树的第一层。
例如,数据库中有如下多层关联数据:A部门—>B科室—>张三。
″A部门″可以称为所述多层关联数据的第一层数据,″B科室″可以称为所述多层关联数据的第二层数据,″张三″可以称为所述多层关联数据的第三层数据。
所述获取多层关联数据的第一层可以是从数据库中获取数据″A部门″,并可以生成可点击的数据树结点。
需要说明的是,上述例子中的第一层数据是一个数据,但不局限于此,第一层数据可以是一个,也可以是多个。
步骤202、接收结点点击指令,根据点击指令获取相应结点的下层数据;
具体可以在接收结点点击指令或者其他指示获取下层数据的指令后,在数据库中动态获取相应结点的下层数据,下层数据可以是一个,也可以是多个。获取下层数据的方法可以是根据数据的父结点、层数等关联参数在数据库中搜索,从而可以获取到符合条件的数据。
例如上述例子,″B科室″可以作为″A部门″的下层数据,当接收到用户点击″A部门″结点的点击指令后,从数据库中获取下层数据″B科室″,同样,″张三″可以作为″B科室″的下层数据。
步骤203、利用所述下层数据,构建数据树的相应部分。
当然,树的结构可以通过开发语言提供的控件来构建完成,例如控件TreeView,不同的开发语言,控件的名称可能不尽相同。
例如上述例子,在获取了″A部门″的下层数据″B科室″后,利用数据″B科室″构建数据树的″A部门″结点的下层结点。
多层关联数据可以有多个层次,所以可以构建出很多层的数据树,而数据树的每个结点的下层结点都可以是根据结点点击指令动态构建的。
下面,通过具体实例对本实施例方法如何实现作相应说明。
例如,参见图3,本发明实施例二提供的一种多层关联数据的关联示意图。
如图3所示的多层关联数据有三个层次,″财务部″是第一层数据;″总账开发组″、″预算开发组″、″报表开发组″是″财务部″的下层数据;″张三″、″李四″是″预算开发组″的下层数据;″王五″是″报表开发组″的下层数据。
数据库中有用于存储数据的表t_Item,可以利用表t_Item的几个主要的字段来建立树结构。表t_Item结构可以如下:
t_Item(
FItemID INT,*------内码
FParentID INT,*------父结点ID
FLevel INT,*-------层
FName NVARCHAR(255)*-------名称
)
在表t_Item中可以存储大量的数据,并可以通过内码、父结点ID、层、以及名称等参数字段在数据库中找到唯一对应的数据。父结点ID、层等参数还可以体现单个数据可其他数据的关联特性。例如可以体现出树形结构,网状结构,环形结构等。
例如,图3所示的多层关联数据在表t_Item中存储可以如下:
FItemID(内码) | FParentID(父结点ID) | FLevel(层) | FName(名称) |
0 | 0 | 0 | 财务部 |
1 | 0 | 1 | 总账开发组 |
2 | 0 | 1 | 预算开发组 |
5 | 0 | 1 | 报表开发组 |
10 | 2 | 2 | 张三 |
20 | 2 | 2 | 李四 |
100 | 5 | 2 | 王五 |
可以利用参数<内码>在数据库中唯一确定一个数据,也可以利用参数<内码>和参数<层>共同在数据库中唯一确定一个数据。参数<父结点ID>可以体现出单个数据与上层数据的关联特性。
″财务部″是图3所示多层关联数据的第一层数据,用于构建数据树的第一层,″财务部″在数据库中的记录可以为(FItemID=0,FParentID=0,FLevel=0,FName=财务部)。
例如,当用户点击″财务部″结点的时,可以按照(FParentID=0,FLevel=1)的搜索条件,到表t_Item中动态获取满足(FParentID=0,FLevel=1)的所有数据,利用获取到的数据构建″财务部″结点的下层,也就是数据树的第二层,并可以将构建好的第二层结点全部展示。
到数据库中动态获取″财务部″结点下层数据的SQL脚本语句可以如下:
(SELECT FItemID,FParentID,FLevel,FName FROM t_ItemWHERE FParentID=0AND FLevel=1)。
动态获取到的满足(FParentID=0,FLevel=1)的数据是(″总账开发组″、″预算开发组″、″报表开发组″)。
利用获取的到三个数据构建″财务部″的下层结点,构建好的数据树可以如图4所示,数据树的第一层(根结点)是″财务部″,″财务部″的下层,也就是数据树的第二层有″总账开发组″、″预算开发组″、″报表开发组″三个结点。
当用户点击″预算开发组″结点时,可以按照(FParentID=2,FLevel=2)的搜索条件,到表t_Item中动态获取满足(FParentID=2,FLevel=2)的所有数据,利用获取到的数据构建″预算开发组″结点的下层,也就是数据树的第三层,并可以将构建好的第三层结点全部展示。
到数据库中动态获取″预算开发组″结点下层数据的SQL脚本语句可以如下:
(SELECT FItemID,FParentID,FLevel,FName FROM t_ItemWHERE FParentID=2AND FLevel=2)。
动态获取到的满足(FParentID=2,FLevel=2)的数据是(″张三″、″李四″)。
利用获取的到两个数据构建″预算开发组″的下层结点,构建好的数据树可以如图5所示,数据树的第一层(根结点)是″财务部″;″财务部″的下层,也就是数据树的第二层有″总账开发组″、″预算开发组″、″报表开发组″三个结点;″预算开发组″的下层,也就是数据树的第三层有″张三″、″李四″两个结点。
如果用户只是点击″报表开发组″结点,可以按照(FParentID=5,FLevel=2)的搜索条件,到表t_Item中动态获取满足(FParentID=5,FLevel=2)的所有数据,利用获取到的数据构建″预算开发组″结点的下层,也就是数据树的第三层,并可以将构建好的第三层结点全部展示。
到数据库中动态获取″报表开发组″结点下层数据的SQL脚本语句可以如下:
(SELECT FItemID,FParentID,FLevel,FName FROM t_ItemWHERE FParentID=5AND FLevel=2)。
动态获取到的满足(FParentID=5,FLevel=2)的数据是(″王五″)。
利用获取的到一个数据构建″报表开发组″的下层结点,构建好的数据树可以如图6所示,数据树的第一层(根结点)是″财务部″;″财务部″的下层,也就是数据树的第二层有″总账开发组″、″预算开发组″、″报表开发组″三个结点;″报表开发组″的下层,也就是数据树的第三层有″王五″一个结点。
当然,如果用户点击了″预算开发组″和″报表开发组″两个结点,展开后的数据树可以如图3所示,数据树的第一层(根结点)是″财务部″;″财务部″的下层,也就是数据树的第二层有″总账开发组″、″预算开发组″、″报表开发组″三个结点;″报表开发组″的下层有″王五″一个结点。″预算开发组″的下层有″张三″、″李四″两个结点。″王五″、″张三″、″李四″三个结点都是数据树的第三层结点。
如果用户点击到没有下层数据的结点时,例如用户点击″王五″结点时,由于″王五″没有下层数据,按照(FParentID=100,FLevel=3)的搜索条件,到表t_Item中动态获取满足(FParentID=100,FLevel=3)的所有数据,就不能获取到相关数据,可以不必构建出数据树的″王五″结点的下层结点。
可以看出,在本实施例方法中,根据用户结点点击指令,动态的获取相应结点的下层数据,并利用获取到的数据构建数据树的相应部分,提高了构建数据树的效率,缩短了用户浏览的等待时间,使得用户有更好的体验。
相应的,本发明实施例还提供一种构建数据树的装置。
实施例三、
参见图7,是本发明实施例三提供的一种构建数据树的装置,具体可以包括:
接收单元710,用于接收点击指令。
所述接收单元710可以接收用户的结点点击指令,也可以接收用户的图标点击指令。
第一获取单元720,用于获取所述点击指令对应结点的下层数据。
所述第一获取单元720可以以各种参数为条件,在数据库中获取所述点击指令对应结点的下层数据,例如父结点,层数,内码等参数。
第一构建单元730,用于利用所述下层数据构建数据树的所述结点的下层结点。
所述第一构建单元730通过软件平台的控件,可以方便的利用所述下层数据构建数据树的所述结点的下层结点。
所述装置还可以包括:
第二获取单元740,用于在接收单元710接收点击指令之前获取多层关联数据的第一层数据。
第二构建单元750,用于利用所述第一层数据构建数据树的第一层结点。
构建数据树的第一层结点是为了用户方便点击,通常可以是在程序启动时从数据库中自动获取数据和构建数据树的第一层结点(根结点)。
所述第一获取单元720具体可以用于在数据库中获取父结点为所述点击指令对应结点的相应内码的所有数据。
所述第一获取单元720具体用于在数据库中获取父结点为所述点击指令对应结点相应的内码,且层数为所述结点对应层数递增后的层数的所有数据。
所述第一构建单元730具体用于通过平台控件,利用所述下层数据构建数据树的所述结点的下层结点。
综上所述,在本发明实施例的技术方案中,根据用户结点点击指令,动态的获取相应结点的下层数据,并利用获取到的数据构建数据树的相应部分,相对提高了构建数据树的效率,缩短了用户浏览的等待时间,使得用户有更好的体验。
进一步的,利用各种参数为条件获取数据,取数方式更为灵活,构建数据树的方案也可多样化。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
以上对本发明实施例所提供的一种构建数据树的方法和装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (6)
1.一种构建数据树的方法,其特征在于,包括:
接收点击指令;
从数据库中获取所述点击指令对应结点的下层数据;
利用所述下层数据构建数据树的所述结点的下层结点,其中,所述点击指令对应结点为所述下层结点的父结点;
其中,所述从数据库中获取所述点击指令对应结点的下层数据具体为:在数据库中获取父结点为所述点击指令对应结点的相应内码的所有数据,或,在数据库中获取父结点为所述点击指令对应结点相应的内码,且层数为所述结点相应层数递增后的层数的所有数据。
2.根据权利要求1所述的构建数据树的方法,其特征在于,所述接收点击指令之前还包括:
获取多层关联数据的第一层数据;
利用所述第一层数据构建数据树的第一层结点。
3.根据权利要求1至2任一项所述的构建数据树的方法,其特征在于,所述利用所述下层数据构建数据树的所述结点的下层结点具体为:
通过平台控件,利用所述下层数据构建数据树的所述结点的下层结点。
4.一种构建数据树的装置,其特征在于,包括:
接收单元,用于接收点击指令;
第一获取单元,用于从数据库中获取所述点击指令对应结点的下层数据;
第一构建单元,用于利用所述下层数据构建数据树的所述结点的下层结点,其中,所述点击指令对应结点为所述下层结点的父结点;
其中,所述第一获取单元具体用于在数据库中获取父结点为所述点击指令对应结点的相应内码的所有数据,或者,所述第一获取单元具体用于在数据库中获取父结点为所述点击指令对应结点相应的内码,且层数为所述结点相应层数递增后的层数的所有数据。
5.根据权利要求4所述的构建数据树的装置,其特征在于,所述装置还包括:
第二获取单元,用于在接收单元接收点击指令之前获取多层关联数据的第一层数据;
第二构建单元,用于利用所述第一层数据构建数据树的第一层结点。
6.根据权利要求4至5任一项所述的构建数据树的装置,其特征在于,所述第一构建单元具体用于通过平台控件,利用所述下层数据构建数据树的所述结点的下层结点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102130432A CN101339568B (zh) | 2008-08-21 | 2008-08-21 | 一种构建数据树的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102130432A CN101339568B (zh) | 2008-08-21 | 2008-08-21 | 一种构建数据树的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101339568A CN101339568A (zh) | 2009-01-07 |
CN101339568B true CN101339568B (zh) | 2012-01-25 |
Family
ID=40213634
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008102130432A Active CN101339568B (zh) | 2008-08-21 | 2008-08-21 | 一种构建数据树的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101339568B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103106198A (zh) * | 2011-11-09 | 2013-05-15 | 金蝶软件(中国)有限公司 | 树型结构实现方法和装置 |
CN102819558A (zh) * | 2012-06-28 | 2012-12-12 | 用友软件股份有限公司 | 数据展示装置和数据展示方法 |
US9372596B2 (en) | 2013-01-28 | 2016-06-21 | International Business Machines Corporation | Assistive overlay for report generation |
CN103488692B (zh) * | 2013-09-02 | 2017-02-08 | 用友网络科技股份有限公司 | 数据查询系统和数据查询方法 |
US10282905B2 (en) | 2014-02-28 | 2019-05-07 | International Business Machines Corporation | Assistive overlay for report generation |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101082929A (zh) * | 2007-06-27 | 2007-12-05 | 腾讯科技(深圳)有限公司 | 一种构建内存树的方法及系统 |
-
2008
- 2008-08-21 CN CN2008102130432A patent/CN101339568B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101082929A (zh) * | 2007-06-27 | 2007-12-05 | 腾讯科技(深圳)有限公司 | 一种构建内存树的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101339568A (zh) | 2009-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105550241B (zh) | 多维数据库查询方法及装置 | |
Bozzon et al. | Liquid query: multi-domain exploratory search on the web | |
CN102495872B (zh) | 对移动设备用户进行个性化新闻推荐的方法和装置 | |
WO2017041369A1 (zh) | 基于人工智能的人机交互的交互引导方法和装置 | |
US20130157234A1 (en) | Storyline visualization | |
CN101339568B (zh) | 一种构建数据树的方法和装置 | |
CN102243660B (zh) | 一种数据访问方法及设备 | |
CN103383699B (zh) | 字符串检索方法及系统 | |
CN105849725A (zh) | 构造用于针对多维数据结构执行的查询 | |
CN101840432A (zh) | 一种基于Deep Web深层动态数据的数据挖掘装置及方法 | |
CN103729362A (zh) | 导航内容的确定方法和装置 | |
CN103279486A (zh) | 一种提供相关搜索的方法和装置 | |
CN103246549B (zh) | 一种数据转存的方法及系统 | |
CN104268192A (zh) | 一种网页信息提取方法、装置及终端 | |
CN103678550A (zh) | 一种基于动态索引结构的海量数据实时查询方法 | |
CN108845942A (zh) | 产品特征管理方法、装置、系统及存储介质 | |
US9996535B1 (en) | Efficient hierarchical user interface | |
CN108287889B (zh) | 一种基于弹性表模型的多源异构数据存储方法和系统 | |
CN104281648A (zh) | 基于维度标签的搜索结果多维度导航方法 | |
CN106095961A (zh) | 表显示处理方法和装置 | |
CN104537063A (zh) | 一种基于论文引用网络的知识脉络图构建系统和方法 | |
CN104142952B (zh) | 报表展示方法和装置 | |
CN105022797A (zh) | 一种资源的主题处理方法和装置 | |
Fenlon | Thematic research collections: Libraries and the evolution of alternative digital publishing in the humanities | |
CN109753533A (zh) | 一种多源关系型数据库客户端开发方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |