一种易扩展的多级分类检索方法及系统的制作方法

文档序号:6508314阅读:478来源:国知局
专利名称:一种易扩展的多级分类检索方法及系统的制作方法
技术领域
本发明属于数据库检索技术领域,具体涉及一种易扩展的多级分类检索方法及系统。本发明尤其适用于海量数据的数据库检索中。
背景技术
在信息系统中,往往对数据进行分类存储,便于用户对数据进行分类检索和查看分类数据,尤其在海量数据的情况下,这样可以提高检索的效率。例如,假设一篇文章含有地区分类属性亚洲一中国一北京。这是一种典型多级分类结构,如果将该地区的分类属性设置为“中国”,则系统在存储时通常只存储一个节点即“中国”或者将分类路径写死到一个或多个字段上。检索时,通过SQL中的like语句进行模糊查询。一方面,这种检索方式在数据量较大的情况下效率较低,即使建立数据库索引也无法达到很好的检索效率。另一方面,这种检索方式检索出的结果只包含“中国”的数据,而通常的需求是能够按照分类路径进行检索,即按照“中国”检索时能够检索出所有“中国”和“北京”的数据,也就是说,能够检索出该节点以及该节点后所有节点的数据。中国专利申请(申请号200910080362. 5,申请日2009年3月19日)记载了一种多级分类检索方法及系统,该方法及系统首先将业务数据的分类信息存储在分类表中,分类表包括用于存储分类节点层次ID的字段、用于存储分类节点ID的字段、用于存储分类节点名称的字段以及用于存储分类节点父节点的字段。然后将业务数据存储在数据表中,数据表包括分类字段,分类字段用于存储分类路径,分类路径根据分类表中用于存储分类节点父节点的字段内容获得,分类路径上的分类节点用从分类表中获得的分类节点ID表示。 再根据数据表生成与该数据表相对应的分类关联表,分类关联表存储数据表中除分类字段外的全部或部分字段内容,以及根据数据表中分类字段存储的分类路径拆分成的多个分类层次字段,按照层次关系存储拆分后的分类节点。最后在分类表中获得分类节点层次ID和分类节点ID,设置检索条件,利用数据库索引在分类关联表中检索数据。这种方式虽然提高了数据检索的效率,但是当增加分类时,其扩展性较差。例如 假设数据表的结构如下
字段11字段21字段n|分类字段
中国—北京如果要在分类字段中增加体裁的分类,需要修改程序,把体裁分类写入到分类字段中,达到下表所示的效果。再由触发器对分类字段进行拆分,写入分类关联表。每次增加新的分类时,都需要修改程序,把新增的分类写入到分类字段中。这种方式分类更新的效率较低,不便于扩展。
权利要求
1.一种易扩展的多级分类检索方法,包括以下步骤(1)将业务数据的分类信息存储在分类表中,所述分类表包括用于存储分类节点层次 ID的字段、用于存储分类节点ID的字段、用于存储分类节点名称的字段以及用于存储分类节点父节点的字段;(2)将业务数据存储在数据表中,所述数据表包括分类字段和汇总分类字段,所述分类字段用于存储分类路径,所述分类路径根据分类表中用于存储分类节点父节点的字段内容获得,分类路径上的分类节点用从分类表中获得的分类节点ID表示;所述汇总分类字段用于存储所有分类字段中的分类路径;(3)将数据表与该数据表中的分类字段之间的关联关系存储到分类字段关联表中;(4)根据数据表生成与该数据表相对应的分类关联表,所述分类关联表存储数据表中除分类字段和汇总分类字段外的全部或部分字段内容,以及根据数据表中的汇总分类字段存储的分类路径拆分成的多个分类层次字段,按照层次关系存储拆分后的分类节点;(5)在分类表中获得分类节点层次ID和分类节点ID,设置检索条件,利用数据库索引在分类关联表中检索数据。
2.如权利要求1所述的易扩展的多级分类检索方法,其特征在于步骤(3)中,当数据表中增加分类字段时,自动将增加的分类字段与该数据表之间的关联关系存储到分类字段关联表中;在给增加的分类字段赋值时,根据分类字段关联表中的关联关系,自动将与该数据表关联的所有分类字段值汇总在一起,写入到数据表的汇总分类字段中。
3.如权利要求1所述的易扩展的多级分类检索方法,其特征在于步骤(4)中,数据表与分类关联表之间的对应关系为一对一、一对多、多对一或多对多。
4.如权利要求1至3之一所述的易扩展的多级分类检索方法,其特征在于,步骤(4)中所述根据数据表生成与该数据表相对应的分类关联表的过程包括以下步骤①选择数据表中除分类字段和汇总分类字段外的全部或部分字段作为分类关联表中的字段,并确定分类关联表中的分类层次字段的个数;所述分类层次字段的个数不小于数据表中汇总分类字段存储的最深分类路径的层次深度,分类层次字段的名称中包含分类节点的层次ID ;②建立数据表中字段与分类关联表中字段的对应关系,将被步骤①选中的字段内容写入到分类关联表记录中相应的字段内,将数据表汇总分类字段存储的分类路径按照层次关系进行拆分,将拆分后的分类节点按照该分类节点所处的层次分别写入到分类关联表记录中相应的分类层次字段内。
5.如权利要求4所述的易扩展的多级分类检索方法,其特征在于步骤②中,当数据表的汇总分类字段中存储多种分类路径时,一种分类路径形成分类关联表中的一条记录,除分类层次字段外,所有分类路径形成的分类关联表中记录的其他字段内容相同。
6.如权利要求4所述的易扩展的多级分类检索方法,其特征在于所述方法在建立分类关联表后,还包括在与分类关联表相对应的数据表上创建触发器的步骤,更新数据表中的数据时,利用所述触发器对分类关联表中的数据进行同步更新。
7.如权利要求6所述的易扩展的多级分类检索方法,其特征在于所述更新数据表中的数据包括增加记录、更新记录和删除记录,所述更新记录包括在原记录的分类字段中增加分类路径。
8.如权利要求7所述的易扩展的多级分类检索方法,其特征在于在数据表中增加记录时,所述利用触发器对分类关联表中的数据进行同步更新的过程包括以下步骤①更新数据表时触发该表上的触发器;②触发器根据数据表中更新的记录,获取新增加的记录内容;③根据新增加的记录内容,更新与该数据表对应的分类关联表中的记录。
9.如权利要求7所述的易扩展的多级分类检索方法,其特征在于在原记录的分类字段中增加分类路径时,所述利用触发器对分类关联表中的数据进行同步更新的过程包括以下步骤①更新数据表时触发该表上的触发器;②触发器根据数据表记录中更新的分类字段,获取该分类字段更新后的分类路径;③根据更新后的分类路径,更新与该数据表对应的分类关联表中的记录。
10.一种易扩展的多级分类检索系统,包括用于将业务数据的分类信息存储在分类表中的分类信息存储模块(11),所述分类表包括用于存储分类节点层次ID的字段、用于存储分类节点ID的字段、用于存储分类节点名称的字段以及用于存储分类节点父节点的字段;用于将业务数据存储在数据表中的业务数据存储模块(12),所述数据表包括分类字段和汇总分类字段,所述分类字段用于存储分类路径,所述分类路径根据分类表中用于存储分类节点父节点的字段内容获得,分类路径上的分类节点用从分类表中获得的分类节点ID 表示;所述汇总分类字段用于存储所有分类字段中的分类路径;用于将数据表与该数据表中的分类字段之间的关联关系存储到分类字段关联表中的分类字段关联表生成模块(13);用于根据数据表生成与该数据表相对应的分类关联表的分类关联表生成模块(14),所述分类关联表存储数据表中除分类字段和汇总分类字段外的全部或部分字段内容,和根据数据表中汇总分类字段存储的分类路径拆分成的多个分类层次字段,按照层次关系存储拆分后的分类节点;以及用于呈现分类表、设置检索条件、利用数据库索引在分类关联表中检索数据并呈现检索结果的检索模块(15)。
11.如权利要求10所述的易扩展的多级分类检索系统,其特征在于分类字段关联表生成模块(1 在数据表增加分类字段时,自动将增加的分类字段与该数据表之间的关联关系存储到分类字段关联表中;在给增加的分类字段赋值时,根据分类字段关联表中的关联关系,自动将与该数据表关联的所有分类字段内容汇总在一起,写入到数据表的汇总分类字段中。
12.如权利要求10或11所述的易扩展的多级分类检索系统,其特征在于所述系统还包括用于在数据表中创建触发器的触发器生成模块(16),所述触发器用于将数据表中的数据和与其相对应的分类关联表中的数据进行同步更新。
全文摘要
本发明公开了一种易扩展的多级分类检索方法及系统,属于数据库检索技术领域。本发明根据数据分类信息在数据表中设置分类字段,存储分类节点之间的层次关系;将数据表与该数据表中的分类字段之间的关联关系存储到分类字段关联表中;再根据分类节点之间的层次关系将每个节点拆分成独立的字段,与数据表中其他字段组合,生成分类关联表;检索时利用数据库索引在分类关联表中检索数据。当数据表中增加分类字段时,自动将增加的分类字段与该数据表之间的关联关系存储到分类字段关联表中;在给增加的分类字段赋值时,根据分类字段关联表中的关联关系,自动将与该数据表关联的所有分类字段值汇总在一起,写入到数据表的汇总分类字段中。
文档编号G06F17/30GK102467521SQ20101053839
公开日2012年5月23日 申请日期2010年11月8日 优先权日2010年11月8日
发明者彭丹 申请人:北京北大方正电子有限公司, 北大方正集团有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1