CN102467521A - 一种易扩展的多级分类检索方法及系统 - Google Patents
一种易扩展的多级分类检索方法及系统 Download PDFInfo
- Publication number
- CN102467521A CN102467521A CN2010105383967A CN201010538396A CN102467521A CN 102467521 A CN102467521 A CN 102467521A CN 2010105383967 A CN2010105383967 A CN 2010105383967A CN 201010538396 A CN201010538396 A CN 201010538396A CN 102467521 A CN102467521 A CN 102467521A
- Authority
- CN
- China
- Prior art keywords
- data
- field
- tables
- classification
- class
- 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.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种易扩展的多级分类检索方法及系统,属于数据库检索技术领域。本发明根据数据分类信息在数据表中设置分类字段,存储分类节点之间的层次关系;将数据表与该数据表中的分类字段之间的关联关系存储到分类字段关联表中;再根据分类节点之间的层次关系将每个节点拆分成独立的字段,与数据表中其他字段组合,生成分类关联表;检索时利用数据库索引在分类关联表中检索数据。当数据表中增加分类字段时,自动将增加的分类字段与该数据表之间的关联关系存储到分类字段关联表中;在给增加的分类字段赋值时,根据分类字段关联表中的关联关系,自动将与该数据表关联的所有分类字段值汇总在一起,写入到数据表的汇总分类字段中。
Description
技术领域
本发明属于数据库检索技术领域,具体涉及一种易扩展的多级分类检索方法及系统。本发明尤其适用于海量数据的数据库检索中。
背景技术
在信息系统中,往往对数据进行分类存储,便于用户对数据进行分类检索和查看分类数据,尤其在海量数据的情况下,这样可以提高检索的效率。例如,假设一篇文章含有地区分类属性:亚洲→中国→北京。这是一种典型多级分类结构,如果将该地区的分类属性设置为“中国”,则系统在存储时通常只存储一个节点即“中国”或者将分类路径写死到一个或多个字段上。检索时,通过SQL中的like语句进行模糊查询。一方面,这种检索方式在数据量较大的情况下效率较低,即使建立数据库索引也无法达到很好的检索效率。另一方面,这种检索方式检索出的结果只包含“中国”的数据,而通常的需求是能够按照分类路径进行检索,即按照“中国”检索时能够检索出所有“中国”和“北京”的数据,也就是说,能够检索出该节点以及该节点后所有节点的数据。
中国专利申请(申请号:200910080362.5,申请日:2009年3月19日)记载了一种多级分类检索方法及系统,该方法及系统首先将业务数据的分类信息存储在分类表中,分类表包括用于存储分类节点层次ID的字段、用于存储分类节点ID的字段、用于存储分类节点名称的字段以及用于存储分类节点父节点的字段。然后将业务数据存储在数据表中,数据表包括分类字段,分类字段用于存储分类路径,分类路径根据分类表中用于存储分类节点父节点的字段内容获得,分类路径上的分类节点用从分类表中获得的分类节点ID表示。再根据数据表生成与该数据表相对应的分类关联表,分类关联表存储数据表中除分类字段外的全部或部分字段内容,以及根据数据表中分类字段存储的分类路径拆分成的多个分类层次字段,按照层次关系存储拆分后的分类节点。最后在分类表中获得分类节点层次ID和分类节点ID,设置检索条件,利用数据库索引在分类关联表中检索数据。
这种方式虽然提高了数据检索的效率,但是当增加分类时,其扩展性较差。例如:假设数据表的结构如下:
字段1 | 字段2 | 字段n | 分类字段 |
中国_北京 |
如果要在分类字段中增加体裁的分类,需要修改程序,把体裁分类写入到分类字段中,达到下表所示的效果。再由触发器对分类字段进行拆分,写入分类关联表。每次增加新的分类时,都需要修改程序,把新增的分类写入到分类字段中。这种方式分类更新的效率较低,不便于扩展。
字段1 | 字段2 | 字段n | 分类字段 |
中国_北京;新闻_消息 |
发明内容
针对现有技术中存在的缺陷,本发明的目的是提供一种易扩展的多级分类检索方法及系统。
为了实现上述目的,本发明采用的技术方案如下:
一种易扩展的多级分类检索方法,包括以下步骤:
(1)将业务数据的分类信息存储在分类表中,所述分类表包括用于存储分类节点层次ID的字段、用于存储分类节点ID的字段、用于存储分类节点名称的字段以及用于存储分类节点父节点的字段;
(2)将业务数据存储在数据表中,所述数据表包括分类字段和汇总分类字段,所述分类字段用于存储分类路径,所述分类路径根据分类表中用于存储分类节点父节点的字段内容获得,分类路径上的分类节点用从分类表中获得的分类节点ID表示;所述汇总分类字段用于存储所有分类字段中的分类路径;
(3)将数据表与该数据表中的分类字段之间的关联关系存储到分类字段关联表中;
(4)根据数据表生成与该数据表相对应的分类关联表,所述分类关联表存储数据表中除分类字段和汇总分类字段外的全部或部分字段内容,以及根据数据表中的汇总分类字段存储的分类路径拆分成的多个分类层次字段,按照层次关系存储拆分后的分类节点;
(5)在分类表中获得分类节点层次ID和分类节点ID,设置检索条件,利用数据库索引在分类关联表中检索数据。
一种易扩展的多级分类检索系统,包括用于将业务数据的分类信息存储在分类表中的分类信息存储模块,所述分类表包括用于存储分类节点层次ID的字段、用于存储分类节点ID的字段、用于存储分类节点名称的字段以及用于存储分类节点父节点的字段;
用于将业务数据存储在数据表中的业务数据存储模块,所述数据表包括分类字段和汇总分类字段,所述分类字段用于存储分类路径,所述分类路径根据分类表中用于存储分类节点父节点的字段内容获得,分类路径上的分类节点用从分类表中获得的分类节点ID表示;所述汇总分类字段用于存储所有分类字段中的分类路径;
用于将数据表与该数据表中的分类字段之间的关联关系存储到分类字段关联表中的分类字段关联表生成模块;
用于根据数据表生成与该数据表相对应的分类关联表的分类关联表生成模块,所述分类关联表存储数据表中除分类字段和汇总分类字段外的全部或部分字段内容,和根据数据表中汇总分类字段存储的分类路径拆分成的多个分类层次字段,按照层次关系存储拆分后的分类节点;
以及用于呈现分类表、设置检索条件、利用数据库索引在分类关联表中检索数据并呈现检索结果的检索模块。
本发明所述方法及系统,通过在数据表中增加存储每种分类的分类字段,以及将分类字段与数据表之间的关联关系存储在分类字段关联表的方式,使得在增加分类时,无需修改程序,通过查询分类字段关联表,将与数据表关联的所有分类字段值汇总,写入到数据表中的汇总分类字段内。不仅提高了分类更新的效率,而且使得分类的扩展更容易。
附图说明
图1是具体实施方式中易扩展的多级分类检索系统的结构框图;
图2是具体实施方式中易扩展的多级分类检索方法的流程图;
图3是具体实施方式中数据表、触发器、分类表、分类关联表及分类字段关联表之间的关系示意图。
具体实施方式
下面结合具体实施方式和附图对本发明进行详细描述。
图1示出了本实施方式中易扩展的多级分类检索系统的结构。如图1所示,该系统包括分类信息存储模块11、业务数据存储模块12、分类字段关联表生成模块13、分类关联表生成模块14、检索模块15、触发器生成模块16和数据库17。
分类信息存储模块11用于将业务数据的分类信息存储在分类表中。所述分类表包括用于存储分类节点层次ID的字段、用于存储分类节点ID的字段、用于存储分类节点名称的字段以及用于存储分类节点父节点的字段。
业务数据存储模块12用于将业务数据存储在数据表中。所述数据表包括分类字段和汇总分类字段,所述分类字段用于存储分类路径,所述分类路径根据分类表中用于存储分类节点父节点的字段内容获得,分类路径上的分类节点用从分类表中获得的分类节点ID表示;所述汇总分类字段用于存储所有分类字段中的分类路径。
分类字段关联表生成模块13用于将数据表与该数据表中的分类字段之间的关联关系存储到分类字段关联表中。
分类关联表生成模块14用于根据数据表生成与该数据表相对应的分类关联表。所述分类关联表存储数据表中除分类字段和汇总分类字段外的全部或部分字段内容,和根据数据表中汇总分类字段存储的分类路径拆分成的多个分类层次字段,按照层次关系存储拆分后的分类节点;
检索模块15用于呈现分类表、设置检索条件、利用数据库索引在分类关联表中检索数据并呈现检索结果。
触发器生成模块16用于在数据表中创建触发器,当更新数据表中的数据时,触发器可以将数据表中的数据和与其相对应的分类关联表中的数据进行同步更新。
数据库17用于存储数据表、分类表、分类关联表、分类字段关联表等信息。
图2示出了采用图1所示系统实现多级分类检索的方法流程,主要包括以下步骤:
(1)分类信息存储模块11将业务数据的分类信息存储在分类表中。
分类表可以是一种树形结构表,包括存储分类节点层次ID的字段、存储分类节点ID的字段、存储分类节点名称的字段以及存储分类节点父节点的字段等。分类表的主要结构如下表所示:
分类层次ID | 分类节点ID | 分类名称 | 父节点 |
分类表的创建数量根据对数据的分类方式来确定,一个分类表对应一种分类。
(2)业务数据存储模块12将业务数据存储在数据表中。
数据表包括分类字段和汇总分类字段。分类字段用于存储分类路径,汇总分类字段用于存储所有分类字段中的分类路径。如果数据表中一条记录可以按照不同的角度进行多种分类,则汇总分类字段中可以存储多种分类路径,分类的层次关系以及多种分类路径之间可以采用事先约定的符号表示。
(3)分类字段关联表生成模块13将数据表与该数据表中的分类字段之间的关联关系存储到分类字段关联表中。
当数据表中增加分类字段时,自动将增加的分类字段与该数据表之间的关联关系存储到分类字段关联表中。在给增加的分类字段赋值时,根据分类字段关联表中的关联关系,自动将与该数据表关联的所有分类字段值汇总在一起,写入到数据表的汇总分类字段中。
例如,假设原数据表(数据表1)的结构如下:
字段1 | 字段2 | 字段3 | 字段n | 汇总分类字段 | 分类字段1 |
A_B_C | A_B_C |
原分类字段关联表的结构如下:
数据表1 | 分类字段1 |
数据表1中仅存在一种分类。现在数据表1中增加两种分类,分类2“X_Y_Z”和分类3“M_N”,修改后的数据表结构如下:
修改后的分类字段关联表的结构如下:
数据表1 | 分类字段1 |
数据表1 | 分类字段2 |
数据表1 | 分类字段3 |
当给数据表1的分类字段2或者分类字段3赋值时,根据分类字段关联表中的关联关系,将与数据表1关联的所有分类字段值汇总到一起,写入汇总分类字段中,如下表所示:
与现有技术相比,通过在数据表中增加分类字段及增加分类字段关联表的方式,使得增加分类时,无需修改程序,大大增加了分类更新的效率,易于扩展分类。
当删除或修改数据表中的某分类字段时,可以与增加分类相似的方式更新分类字段关联表和数据表。
(4)分类关联表生成模块13生成分类关联表。
分类关联表生成模块13根据数据表建立与该数据表相对应的分类关联表。该表存储数据表中除分类字段和汇总分类字段外的全部或部分字段内容,以及根据数据表中汇总分类字段存储的分类路径拆分成的多个分类层次字段,按照层次关系存储拆分后的分类节点,结构和与其对应的数据表的结构相似,优选的创建方法可以概括为如下两个步骤:
①选择数据表中除分类字段外的全部或部分字段作为分类关联表中的字段,并确定分类关联表中的分类层次字段的个数;所述分类层次字段的个数不小于数据表中分类字段存储的最深分类路径的层次深度,分类层次字段的名称中包含分类节点的层次ID。
例如,假设分类关联表中分类层次字段的个数为10个,字段名称为“分类_1”、“分类_2”……“分类_9”、“分类_10”,其中的数字1、2……9、10表示分类节点的层次ID,如下表所示:
…… | 分类_1 | 分类_2 | …… | 分类_9 | 分类_10 |
②建立数据表中字段与分类关联表中字段的对应关系,将被步骤①选中的字段内容写入到分类关联表记录中相应的字段内,将数据表分类字段存储的分类路径按照层次关系进行拆分,将拆分后的分类节点按照该分类节点所处的层次分别写入到分类关联表记录中相应的分类层次字段内。
假设读取的数据表中分类字段存储的分类路径为“10_11_12_13”(其中“_”为层次间隔符,10、11、12、13表示分类节点ID),根据其结构可知:10为第1层、11为第2层、13为第3层、14为第4层,将其写入分类关联表中相应的层次字段中,如果分类路径没有预先设定的分类层次字段深,则在不存在分类节点的层次字段中写入0,如下表所示:
…… | 分类_1 | 分类_2 | 分类_3 | 分类_4 | …… | 分类_10 |
10 | 11 | 12 | 13 | 0 | 0 |
当数据表的分类字段中存储多种分类路径时,一种分类路径形成分类关联表中的一条记录,除分类层次字段外,所有分类路径形成的分类关联表中记录的其他字段内容相同。
上述方法中,分类关联表中冗余的字段内容可以根据具体的需要进行选择,对于一些大文本字段或二进制字段则不必进行冗余。这种方式当检索后需要展示的结果仅涉及到冗余的字段内容时,则无需与数据表进行关联查询,从而可以进一步提高检索的效率;当检索后需要展示分类关联表中没有的字段内容时,可以从与该分类关联表对应的数据表中获取。
此外,该方法中还预先设定了分类关联表中的分类层次字段的个数。这种方式虽然易于实现,但会造成一定的空间浪费。当然也可以根据读取的分类路径的深度进行动态拆分,使分类路径的深度与分类关联表中的分类层次字段的个数相同。但是,当一个数据表中汇总分类字段存储多种分类路径且深度不同;或者数据表中不同记录中汇总分类字段存储的分类路径深度不同时,分类关联表中分类层次字段的深度仍然需要与数据表汇总分类字段存储的分类路径的最深层次相同,没有达到这种深度的分类路径中不存在分类节点的层次字段仍然需要用0占位。这种方式虽然可以节省空间,但稍显复杂。
数据表与分类关联表的对应关系可以为一对一,即一个数据表对应一个分类关联表,当然也可以是一对多(一个数据表对应多个分类关联表)、多对一或多对多,本发明不对两者之间的对应关系进行限制,任何一种方式均可。
(5)触发器生成模块14创建触发器。
当分类关联表建立后,如果需要更新分类关联表,则还应该在与分类关联表相对应的数据表上根据数据库类型自动生成符合数据库语法的触发器,用于将数据表中的数据与分类关联表中的数据进行同步,即当更新数据表中的数据时,与该数据表对应的分类关联表也进行同步更新,以保证分类关联表与对应的数据表之间的一致性。数据表中数据更新主要包括增加记录、更新记录和删除记录,其中更新记录包括更新非分类字段内容和更新分类字段内容,更新分类字段内容包括在原记录的分类字段中增加分类路径等,在原记录中增加分类路径的更新过程可以概括为如下步骤:
①更新数据表时触发该表上的触发器;
②触发器根据数据表记录中更新的汇总分类字段,获取该汇总分类字段更新后的分类路径;
③根据更新后的分类路径,更新与该数据表对应的分类关联表中的记录。更新分类关联表中记录的方法与建立分类关联表的方法相似。
例如,假设原数据表的结构如下:
字段1 | 字段2 | 字段3 | 字段n | 汇总分类字段 | 分类字段1 |
A_B_C | A_B_C |
原分类关联表的结构如下:
字段1 | 字段2 | 字段3 | 分类_1 | 分类_2 | 分类_3 |
A | B | C |
现在原数据表的分类字段中增加一种分类路径,修改后的数据表结构如下:
则利用触发器更新分类关联表的表结构如下:
字段1 | 字段2 | 字段3 | 分类_1 | 分类_2 | 分类_3 |
A | B | C | |||
X | Y | Z |
其中,第1条记录与第2条记录除分类层次字段外,其他字段的内容均相同。
如果数据表中增加一条新的记录,则更新分类关联表的方法可以概括如下步骤:
①更新数据表时触发该表上的触发器;
②触发器根据数据表中更新的记录,获取数据表中新增加的记录内容;
③根据数据表中字段与分类关联表中字段的对应关系,将数据表中的字段内容写入到分类关联表记录中相应的字段内,将数据表中汇总分类字段存储的分类路径按照层次关系进行拆分,将拆分后的分类节点按照该分类节点所处的层次分别写入到分类关联表记录中相应的分类层次字段内。
如果数据表中删除一条记录,则利用触发器直接根据主键删除分类关联表中相应的记录即可。
创建触发器的方法为现有技术,可参阅相关文献,此处不再展开说明。
图3示出了数据表31、分类表32、分类关联表33、分类字段关联表34和触发器35之间的关系。建立数据表31时需要从分类表32中获得分类信息,以及分类路径上分类节点的ID。分类关联表33和分类字段关联表34的建立需要依据数据表31。数据表31中更新分类时,自动更新分类字段关联表34。触发器35建立在数据表31上,更新数据表31时利用触发器35保持数据表31与分类关联表33的同步更新。
(6)检索模块15在分类关联表中检索数据。
检索模块15展示分类表的结构,可以从中获得分类节点层次ID和分类节点ID,根据分类节点层次ID和分类节点ID在检索模块15中设置检索条件,检索模块15利用数据库索引在分类关联表中进行检索,并显示检索结果。
实施例1
本实施例中,假设数据存在如下一种分类方式:A、B、C、D。其中,A为根节点,层次ID为1,分类节点ID为100;B为A节点的子节点,层次ID为2,分类节点ID为101;C为B节点的子节点,层次ID为3,分类节点ID为102;D为节点C的子节点,层次ID为4,分类节点ID为103。
分类表的结构如下:
分类层次ID | 分类节点ID | 分类名称 | 父节点 |
1 | 100 | A | 0 |
2 | 101 | B | 1 |
3 | 102 | C | 2 |
4 | 103 | D | 3 |
根据分类表获得分类节点ID后,建立数据表1,其结构如下:
上表中分类字段中的“_”表示节点之间的层次关系。当然,也可以采用其他符号表示,本发明不对分类字段的具体存储格式进行限定,只要能够识别出分类节点之间的层次关系即可。
根据数据表1建立分类字段关联表,其结构如下:
数据表1 | 分类字段1 |
根据数据表1建立分类关联表。选择该表中的字段1、字段2和字段3作为分类关联表中的字段,分类层次字段的个数为4。建立数据表中字段与分类关联表中字段的对应关系,将数据表中的字段值写入分类关联表中的相应字段;拆分数据表分类字段存储的分类路径,将分类节点分别写入分类关联表中相应的分类层次字段内,生成如下结构的分类关联表:
字段1 | 字段2 | 字段3 | 分类_1 | 分类_2 | 分类_3 | 分类_4 |
100 | 101 | 102 | 103 |
其中,“分类_1、分类_2、分类_3、分类_4”中的数字“1、2、3、4”表示分类层次ID,“100、101、102、103”表示分类节点ID。
分类关联表建立后,在与其相对的数据表1上创建触发器,当数据表1更新数据时使用该触发器保持数据表1和与其对应的分类关联表中的数据同步更新。
检索时,首先从分类表中获得分类层次ID和分类节点ID;然后设置检索条件,假设本实施例中设置的检索条件为“分类_2=101”;最后利用数据库索引根据检索条件在分类关联表中进行检索。不仅可以检索出“分类_2=101”的信息,还可以检索出其后所有节点102和103的信息。
实施例2
在实施例1的基础上,数据表1中增加两种分类,分别为“100_101_102”、“101_102_103”,更新后的数据表1的结构如下表所示:
根据更新后的数据表1,自动更新分类字段关联表,其结构如下:
数据表1 | 分类字段1 |
数据表1 | 分类字段2 |
数据表1 | 分类字段3 |
当给更新后的数据表1的分类字段2或者分类字段3赋值时,根据分类字段关联表中的关联关系,将与数据表1关联的所有分类字段值汇总到一起,写入汇总分类字段中,如下表所示:
上表中,汇总分类字段中不同的分类层次之间的层次关系用“;”间隔,当然也可以采用其他符号,只要能够将不同的分类区别开来即可。
根据更新后的数据表1,利用触发器更新分类关联表,其结构如下:
字段1 | 字段2 | 字段3 | 分类_1 | 分类_2 | 分类_3 | 分类_4 |
100 | 101 | 0 | 0 | |||
100 | 101 | 102 | 0 | |||
101 | 102 | 103 | 0 |
其中,3条记录的“字段1”、“字段2”、“字段3”的内容相同。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其同等技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (12)
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所述的易扩展的多级分类检索系统,其特征在于:分类字段关联表生成模块(13)在数据表增加分类字段时,自动将增加的分类字段与该数据表之间的关联关系存储到分类字段关联表中;在给增加的分类字段赋值时,根据分类字段关联表中的关联关系,自动将与该数据表关联的所有分类字段内容汇总在一起,写入到数据表的汇总分类字段中。
12.如权利要求10或11所述的易扩展的多级分类检索系统,其特征在于:所述系统还包括用于在数据表中创建触发器的触发器生成模块(16),所述触发器用于将数据表中的数据和与其相对应的分类关联表中的数据进行同步更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010538396 CN102467521B (zh) | 2010-11-08 | 2010-11-08 | 一种易扩展的多级分类检索方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010538396 CN102467521B (zh) | 2010-11-08 | 2010-11-08 | 一种易扩展的多级分类检索方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102467521A true CN102467521A (zh) | 2012-05-23 |
CN102467521B CN102467521B (zh) | 2013-09-04 |
Family
ID=46071165
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010538396 Expired - Fee Related CN102467521B (zh) | 2010-11-08 | 2010-11-08 | 一种易扩展的多级分类检索方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102467521B (zh) |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103853773A (zh) * | 2012-12-04 | 2014-06-11 | 厦门亿联网络技术股份有限公司 | 一种Mysql数据库下树形数据结构的检索方法 |
CN104657455A (zh) * | 2015-02-06 | 2015-05-27 | 南华大学 | 一种多维信息检索方法 |
CN104657456A (zh) * | 2015-02-06 | 2015-05-27 | 南华大学 | 一种基于体裁的多维信息检索系统 |
CN105279198A (zh) * | 2014-07-24 | 2016-01-27 | 北京古盘创世科技发展有限公司 | 数据表储存、修改、查询和统计方法 |
CN105512135A (zh) * | 2014-09-25 | 2016-04-20 | 腾讯科技(深圳)有限公司 | 一种互联网用户发布信息的处理方法和系统 |
WO2017012492A1 (zh) * | 2015-07-22 | 2017-01-26 | 阿里巴巴集团控股有限公司 | 表单标示符生成方法、表单分流方法和装置 |
CN106407230A (zh) * | 2015-08-03 | 2017-02-15 | 天脉聚源(北京)科技有限公司 | 一种数据分类方法及系统 |
CN106547843A (zh) * | 2016-10-14 | 2017-03-29 | 深圳峰创智诚科技有限公司 | 多级分类查询方法和装置 |
WO2017124660A1 (zh) * | 2016-01-18 | 2017-07-27 | 上海天旦网络科技发展有限公司 | 关联多段组件交易的系统及方法 |
CN107103025A (zh) * | 2017-01-05 | 2017-08-29 | 北京亚信智慧数据科技有限公司 | 一种数据处理方法及数据处理平台 |
CN107577787A (zh) * | 2017-09-15 | 2018-01-12 | 广东万丈金数信息技术股份有限公司 | 关联数据信息入库的方法及系统 |
CN107807932A (zh) * | 2016-09-08 | 2018-03-16 | 腾讯科技(深圳)有限公司 | 一种基于路径枚举的层级数据管理方法和系统 |
CN109117435A (zh) * | 2017-06-22 | 2019-01-01 | 索意互动(北京)信息技术有限公司 | 一种客户端、服务器、检索方法及其系统 |
CN109271490A (zh) * | 2018-11-01 | 2019-01-25 | 中企动力科技股份有限公司 | 动态字段的分类方法和系统 |
CN109791543A (zh) * | 2016-09-30 | 2019-05-21 | 华为技术有限公司 | 执行多表连接操作的控制方法及对应装置 |
CN111382145A (zh) * | 2018-12-29 | 2020-07-07 | 贝壳技术有限公司 | 房产交易流程中字段校验方法及装置 |
CN111913949A (zh) * | 2019-05-07 | 2020-11-10 | 北京京东尚科信息技术有限公司 | 数据处理方法、系统、装置和计算机可读存储介质 |
CN112214509A (zh) * | 2019-07-12 | 2021-01-12 | 深圳市优必选科技股份有限公司 | 数据检索方法、系统、终端设备及存储介质 |
WO2022127418A1 (zh) * | 2020-12-14 | 2022-06-23 | 中兴通讯股份有限公司 | 数据检索方法、装置、电子设备及存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106447190A (zh) * | 2016-09-27 | 2017-02-22 | 福建俺说数据科技有限公司 | 食品安全管理方法和食品检索平台 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050114313A1 (en) * | 2003-11-26 | 2005-05-26 | Campbell Christopher S. | System and method for retrieving documents or sub-documents based on examples |
CN101034349A (zh) * | 2007-04-06 | 2007-09-12 | 西安万年科技实业有限公司 | 基于功能设计的数据库应用系统开发平台 |
CN101692229A (zh) * | 2009-07-28 | 2010-04-07 | 武汉大学 | 基于数据内容的三维空间数据自适应多级缓存系统 |
CN101840400A (zh) * | 2009-03-19 | 2010-09-22 | 北大方正集团有限公司 | 一种多级分类检索方法及系统 |
-
2010
- 2010-11-08 CN CN 201010538396 patent/CN102467521B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050114313A1 (en) * | 2003-11-26 | 2005-05-26 | Campbell Christopher S. | System and method for retrieving documents or sub-documents based on examples |
CN101034349A (zh) * | 2007-04-06 | 2007-09-12 | 西安万年科技实业有限公司 | 基于功能设计的数据库应用系统开发平台 |
CN101840400A (zh) * | 2009-03-19 | 2010-09-22 | 北大方正集团有限公司 | 一种多级分类检索方法及系统 |
CN101692229A (zh) * | 2009-07-28 | 2010-04-07 | 武汉大学 | 基于数据内容的三维空间数据自适应多级缓存系统 |
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103853773A (zh) * | 2012-12-04 | 2014-06-11 | 厦门亿联网络技术股份有限公司 | 一种Mysql数据库下树形数据结构的检索方法 |
CN105279198B (zh) * | 2014-07-24 | 2019-03-26 | 北京古盘创世科技发展有限公司 | 数据表储存、修改、查询和统计方法 |
CN105279198A (zh) * | 2014-07-24 | 2016-01-27 | 北京古盘创世科技发展有限公司 | 数据表储存、修改、查询和统计方法 |
CN105512135A (zh) * | 2014-09-25 | 2016-04-20 | 腾讯科技(深圳)有限公司 | 一种互联网用户发布信息的处理方法和系统 |
CN104657455A (zh) * | 2015-02-06 | 2015-05-27 | 南华大学 | 一种多维信息检索方法 |
CN104657456A (zh) * | 2015-02-06 | 2015-05-27 | 南华大学 | 一种基于体裁的多维信息检索系统 |
CN104657455B (zh) * | 2015-02-06 | 2017-12-05 | 南华大学 | 一种多维信息检索方法 |
CN104657456B (zh) * | 2015-02-06 | 2017-12-05 | 南华大学 | 一种基于体裁的多维信息检索系统 |
CN106372081A (zh) * | 2015-07-22 | 2017-02-01 | 阿里巴巴集团控股有限公司 | 表单标示符生成方法、表单分流方法和装置 |
CN106372081B (zh) * | 2015-07-22 | 2019-09-17 | 阿里巴巴集团控股有限公司 | 表单标示符生成方法、表单分流方法和装置 |
WO2017012492A1 (zh) * | 2015-07-22 | 2017-01-26 | 阿里巴巴集团控股有限公司 | 表单标示符生成方法、表单分流方法和装置 |
CN106407230A (zh) * | 2015-08-03 | 2017-02-15 | 天脉聚源(北京)科技有限公司 | 一种数据分类方法及系统 |
WO2017124660A1 (zh) * | 2016-01-18 | 2017-07-27 | 上海天旦网络科技发展有限公司 | 关联多段组件交易的系统及方法 |
CN107807932A (zh) * | 2016-09-08 | 2018-03-16 | 腾讯科技(深圳)有限公司 | 一种基于路径枚举的层级数据管理方法和系统 |
US11301470B2 (en) | 2016-09-30 | 2022-04-12 | Huawei Technologies Co., Ltd. | Control method for performing multi-table join operation and corresponding apparatus |
CN109791543B (zh) * | 2016-09-30 | 2021-02-12 | 华为技术有限公司 | 执行多表连接操作的控制方法及对应装置 |
CN109791543A (zh) * | 2016-09-30 | 2019-05-21 | 华为技术有限公司 | 执行多表连接操作的控制方法及对应装置 |
CN106547843A (zh) * | 2016-10-14 | 2017-03-29 | 深圳峰创智诚科技有限公司 | 多级分类查询方法和装置 |
CN106547843B (zh) * | 2016-10-14 | 2020-02-07 | 深圳峰创智诚科技有限公司 | 多级分类查询方法和装置 |
CN107103025A (zh) * | 2017-01-05 | 2017-08-29 | 北京亚信智慧数据科技有限公司 | 一种数据处理方法及数据处理平台 |
CN109117435B (zh) * | 2017-06-22 | 2021-07-27 | 索意互动(北京)信息技术有限公司 | 一种客户端、服务器、检索方法及其系统 |
CN109117435A (zh) * | 2017-06-22 | 2019-01-01 | 索意互动(北京)信息技术有限公司 | 一种客户端、服务器、检索方法及其系统 |
CN107577787A (zh) * | 2017-09-15 | 2018-01-12 | 广东万丈金数信息技术股份有限公司 | 关联数据信息入库的方法及系统 |
CN109271490A (zh) * | 2018-11-01 | 2019-01-25 | 中企动力科技股份有限公司 | 动态字段的分类方法和系统 |
CN111382145A (zh) * | 2018-12-29 | 2020-07-07 | 贝壳技术有限公司 | 房产交易流程中字段校验方法及装置 |
CN111913949A (zh) * | 2019-05-07 | 2020-11-10 | 北京京东尚科信息技术有限公司 | 数据处理方法、系统、装置和计算机可读存储介质 |
CN111913949B (zh) * | 2019-05-07 | 2023-09-01 | 北京京东振世信息技术有限公司 | 数据处理方法、系统、装置和计算机可读存储介质 |
CN112214509A (zh) * | 2019-07-12 | 2021-01-12 | 深圳市优必选科技股份有限公司 | 数据检索方法、系统、终端设备及存储介质 |
WO2022127418A1 (zh) * | 2020-12-14 | 2022-06-23 | 中兴通讯股份有限公司 | 数据检索方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102467521B (zh) | 2013-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102467521B (zh) | 一种易扩展的多级分类检索方法及系统 | |
CN101840400B (zh) | 一种多级分类检索方法及系统 | |
CN102521416B (zh) | 数据关联查询方法和数据关联查询装置 | |
US7689574B2 (en) | Index and method for extending and querying index | |
CN102930060B (zh) | 一种数据库快速索引的方法及装置 | |
CN106126543B (zh) | 一种关系型数据库到MongoDB的模型转换和数据迁移方法 | |
CN102456055B (zh) | 兴趣点检索的方法及装置 | |
CN105320775A (zh) | 数据的存取方法和装置 | |
CN102768674B (zh) | 一种基于路径结构的xml数据存储方法 | |
CN102541529A (zh) | 一种查询页面生成装置和方法 | |
CN104462421A (zh) | 基于键-值数据库的多租户扩展方法 | |
CN100565508C (zh) | 结构化文档管理设备、搜索设备、存储和搜索方法 | |
CN101706813B (zh) | 一种基于自适应机制的地图符号库管理系统及方法 | |
CN101719135A (zh) | 一种政务资源目录控制系统及方法 | |
CN102810114A (zh) | 基于本体的个人计算机资源管理系统 | |
CN104199860A (zh) | 一种基于二维地理位置信息的数据集分片方法 | |
CN101833511B (zh) | 数据管理方法、装置和系统 | |
CN101963993B (zh) | 一种数据库单表记录快速查找的方法 | |
CN108984626B (zh) | 一种数据处理方法、装置及服务器 | |
CN103279489A (zh) | 一种元数据的存储方法、装置 | |
CN103473324A (zh) | 基于非结构化数据存储的多维业务属性检索装置及方法 | |
CN104408128B (zh) | 一种基于b+树异步更新索引的读优化方法 | |
CN106777111B (zh) | 一种超大规模数据的时序检索索引系统及方法 | |
CN101916260A (zh) | 一种灾害本体和关系数据库间语义映射构建的方法 | |
CN106250443A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130904 Termination date: 20191108 |
|
CF01 | Termination of patent right due to non-payment of annual fee |