CN107729396A - 数据动态查询方法及装置 - Google Patents
数据动态查询方法及装置 Download PDFInfo
- Publication number
- CN107729396A CN107729396A CN201710855870.0A CN201710855870A CN107729396A CN 107729396 A CN107729396 A CN 107729396A CN 201710855870 A CN201710855870 A CN 201710855870A CN 107729396 A CN107729396 A CN 107729396A
- Authority
- CN
- China
- Prior art keywords
- query
- dynamic
- tree
- node
- field name
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明提供一种数据动态查询方法及装置,数据动态查询方法包括:提供生成动态树形查询结构的用户界面;至少接收用户在所述用户界面上的输入以生成所述动态树形查询结构;根据所述动态树形查询结构的叶子节点的至少一个输入项进行数据查询,逐层将所查询的数据按子嵌套查询组的关系运算信息进行关系运算并传递至所述根嵌套查询组以获得查询结果。本发明提供的数据动态查询方法及装置能够降低查询组件的维护成本。
Description
技术领域
本发明涉及数据查询领域,尤其涉及一种数据动态查询方法及装置。
背景技术
目前,许多网页或应用程序中,经常需要与数据库或页面数据结合起来使用,经常面临访问数据库或页面数据的问题。目前,数据查询功能一般涉及为静态查询条件,即在查询页面预先设置好查询条件,用户根据各个查询条件在需要进行数据查询的查询条件中填写相应的查询数据,服务器在获取到用于需要进行数据查询的查询条件中填写相应的查询数据后,在数据库或页面数据中进行相应的查询,并将查询结果反馈至用户。
然而,这样的方式,数据库或页面数据的数据结构和查询条件是预设的并且是紧耦合的,对于查询条件的增删扩展性较差,只能通过修改代码完成,维护成本高。
发明内容
本发明为了克服上述现有技术存在的缺陷,提供一种数据动态查询方法及装置,以降低查询组件的维护成本。
本发明提供一种数据动态查询方法,包括:提供生成动态树形查询结构的用户界面;至少接收用户在所述用户界面上的输入以生成所述动态树形查询结构,所述动态树形查询结构包括:根嵌套查询组,作为所述动态树形查询结构的根节点,所述根嵌套查询组具有节点标识及与关联该节点标识的关系运算信息;多个子嵌套查询组,作为所述动态树形查询结构的中间节点,所述子嵌套查询组具有节点标识、关联该节点标识的关系运算信息及关联该节点标识的父节点的节点标识;多个查询项,作为所述动态树形查询结构的叶子节点,所述查询项具有节点标识、及关联该节点标识的父节点的节点标识,各所述查询项至少显示一个输入项;根据所述动态树形查询结构的叶子节点的至少一个输入项进行数据查询,逐层将所查询的数据按子嵌套查询组的关系运算信息进行关系运算并传递至所述根嵌套查询组以获得查询结果。
可选地,各所述查询项至少显示字段名及条件值两个输入项,所述查询项按如下方式生成:接收增加字段名的输入框的指令;显示字段名的输入框;接收在所述输入框输入的字段名;根据所述字段名自动生成关联该字段名的条件值的候选值。
可选地,所述根据所述字段名自动生成关联该字段名的条件值包括:根据所述字段名自所述动态树形查询结构所查询的数据库中获取关联该字段名的一个或多个属性,将所述一个或多个属性作为关联该字段名的条件值的候选值,在所述条件值的输入框中提供所述候选值的下拉选项。
可选地,所述根据所述字段名自动生成关联该字段名的条件值包括:根据所述字段名自已生成的历史动态树形查询结构中匹配所述字段名,根据历史动态树形查询结构中具有相同所述字段名的查询项,自动生成关联该字段名的条件值的候选值。
可选地,所述根据所述字段名自动生成关联该字段名的条件值包括:根据所述字段名自查询方法所依赖的网络服务或程序代码中搜索该字段名,获取搜索结果中该字段名的N个关联数据,对关联数据进行解析获得关联该字段名的一个或多个属性,将所述一个或多个属性作为关联该字段名的条件值的候选值,在所述条件值的输入框中提供所述候选值的下拉选项,其中,N为大于等于1的整数。
可选地,在一个动态树形查询结构中:当生成多个查询项,且识别该多个查询项输入有相同的字段名时,将关联该多个查询项的父节点的节点标识的关系运算信息自动设置为或运算。
可选地,所述至少接收用户在所述用户界面上的输入以生成所述动态树形查询结构包括:生成一个或多个查询项;以及根据所述一个或多个查询项自已生成的多个历史动态树形查询结构中匹配所述一个或多个查询项,若具有相同的所述一个或多个查询项的查询项,在将该历史动态树形查询结构作为当前动态树形查询结构。
可选地,所述查询项显示一个输入项,根据该输入项的输入内容判断是否需要显示另一个输入项。
可选地,所述根嵌套查询组包括所有子节点的数据信息。
可选地,所述关系运算信息包括和运算和或运算。
可选地,所述输入项还包括比较符。
可选地,所述输入项的形式包括如下形式中的一种或多种:文字输入框、下拉选择输入框以及范围提供输入框。
可选地,在生成动态树形查询结构的用户界面中,已生成的所述历史动态树形查询结构的各子节点与父节点显示为相连接。
可选地,所述根嵌套查询组及各所述子嵌套查询组在生成动态树形查询结构的用户界面中显示有边框,所述至少接收用户在所述用户界面上的输入以生成所述动态树形查询结构还包括:识别用户在所述用户界面上的拖曳手势;当所述拖曳手势将一子树自其父节点的边框内拖曳至其父节点的边框外的手势终点位置;判断包含该手势终点位置且距离该手势终点位置最近的边框对应的子嵌套查询组;以及将该子树的根节点与该子嵌套查询组连接,并更新该子树的根节点的父节点的节点标识。
可选地,所述至少接收用户在所述用户界面上的输入以生成所述动态树形查询结构还包括:识别用户在所述用户界面上的拖曳手势;在所述拖曳手势运动过程中,按所述拖曳手势的拖曳距离逐层生成所述动态树形查询结构。
可选地,在所述拖曳手势运动过程中,按所述拖曳手势的拖曳距离逐层生成所述动态树形查询结构还包括:按所述拖曳手势在所述第一方向上的拖曳距离逐层确定所述动态树形查询结构的层数;按所述拖曳手势在第二方向上的拖曳距离确定所述动态树形查询结构的当前层的节点数量,所述第二方向垂直于所述第一方向。
根据本发明的又一方面,还提供一种数据动态查询装置,包括:用户界面提供模块,用于提供生成动态树形查询结构的用户界面,接收用户在所述用户界面上的输入,并显示已生成的动态树形查询结构;嵌套模块,用于:至少接收用户在所述用户界面上的输入以生成所述动态树形查询结构,所述动态树形查询结构包括:根嵌套查询组,作为所述动态树形查询结构的根节点,所述根嵌套查询组具有节点标识及与关联该节点标识的关系运算信息;多个子嵌套查询组,作为所述动态树形查询结构的中间节点,所述子嵌套查询组具有节点标识、关联该节点标识的关系运算信息及关联该节点标识的父节点的节点标识;多个查询项,作为所述动态树形查询结构的叶子节点,所述查询项具有节点标识、及关联该节点标识的父节点的节点标识,各所述查询项至少显示一个输入项;根据所述动态树形查询结构的叶子节点的至少一个输入项进行数据查询,逐层将所查询的数据按子嵌套查询组的关系运算信息进行关系运算并传递至所述根嵌套查询组以获得查询结果。
相比现有技术,本发明具有如下优势:
1)当需要嵌套查询时,本发明通过提供用户界面,接收用户操作生成动态树形查询结构进行查询来构建一个灵活,可复用的嵌套查询以减少代码维护成本,同时,本发明不限嵌套层数,支持无限嵌套层级,适用各种业务场景;
2)通过当前已形成的树形查询结构、历史形成的树形查询结构、数据库内的数据或网络上的数据根据字段名自动生成该字段名关联的条件值,实现了查询项的自动生成,减少用户额外操作;
3)通过历史数据根据查询项自动生成动态树形查询结构,实现了动态树形查询结构的自动生成,减少用户额外操作;
4)通过在用户界面上图形化显示动态树形查询结构,并通过手势控制的方式,实现动态树形查询结构节点的移动以及动态树形查询结构的层数和节点数的确定,无需增加用户的额外操作,提高用户体验。
附图说明
通过参照附图详细描述其示例实施方式,本发明的上述和其它特征及优点将变得更加明显。
图1示出了根据本发明实施例的动态数据查询方法的流程图。
图2示出了根据本发明实施例的用户界面的示意图。
图3示出了根据本发明实施例的动态树形查询结构的树形图。
图4至图7示出了根据本发明实施例的用户界面的一种触控操作的示意图。
图8示出了经由图4至图7的触控操作更新的动态树形查询结构的树形图。
图9和图10示出了根据本发明实施例的用户界面的另一种触控操作的示意图。
图11示出了根据本发明实施例的动态数据查询装置的模块图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的实施方式;相反,提供这些实施方式使得本发明将全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的结构,因而将省略对它们的重复描述。
下面结合附图描述本发明提供的各个实施例。
首先参见图1,图1示出了根据本发明实施例的动态数据查询方法的流程图。图1供示出3个步骤:
S110:提供生成动态树形查询结构的用户界面。
在一些实施例中,用户界面可提供如图2所示的“添加嵌套查询组”、“添加查询项”、显示为“-”的删除选项以供用户进行操作。于用户界面显示的上述选项可随用户在以下步骤中的操作而增加、减少或变化。对于用户界面,本领域技术人员可以实现更多的变化例,在此不予赘述。
S120:至少接收用户在所述用户界面上的输入以生成所述动态树形查询结构。
在一个具体实施例中,生成的动态树形查询结构的用户界面可参考图2,该动态树形查询结构的树形结构可参考图3。动态树形查询结构包括根嵌套查询组(例如201)、子嵌套查询组(例如202、205及210)、以及查询项(例如203、204、206、211及212)。
根嵌套查询组201作为动态树形查询结构的根节点。所述根嵌套查询组201具有节点标识(例如将标号201作为节点标识,节点标识的形式并非以此为限)及与关联该节点标识201的关系运算信息207。关系运算信息207可包括和运算和或运算,和运算显示为“并且”,或运算显示为“或者”,用户可通过触控点击或鼠标点击等输入方式选择关系运算信息207。在一些变化例中,关系运算信息207还可以包括否运算。关系运算信息207用于对根嵌套查询组201的子节点传回的查询数据进行关系运算。在一些变化例中,根嵌套查询组201作为动态树形查询结构的根节点包括所有子节点的数据信息(例如子节点的节点标识、子节点的关联关系等等)。
子嵌套查询组202、205及210可与根嵌套查询组201具有相同的显示方式。子嵌套查询组202、205及210作为所述动态树形查询结构的中间节点。子嵌套查询组可以为另一子嵌套查询组的父节点或子节点。例如,子嵌套查询组205为子嵌套查询组210的父节点,子嵌套查询组210为子嵌套查询组205的子节点。各子嵌套查询组202、205及210具有节点标识(例如将标号202、205及210作为节点标识,节点标识的形式并非以此为限)、关联该节点标识的关系运算信息及关联该节点标识的父节点的节点标识。以子嵌套查询组202为例,子嵌套查询组202可具有节点标识202、关联该节点标识的关系运算信息(“并且”及“或者”)及关联该节点标识202的父节点的节点标识201。关联子嵌套查询组的节点标识的关系运算信息用于对该子嵌套查询组下的子节点返回的查询数据进行选定的关系运算信息的关系运算。在一些实施例中,子嵌套查询组202还关联有该子嵌套查询组202在树形结构中的层级信息(例如,在本实施例中,子嵌套查询组202为树形结构的第二层的第一个节点,则将第二层第一个节点作为层级信息,也可仅将层数作为层级信息)。
查询项203、204、206、211及212作为所述动态树形查询结构的叶子节点。各查询项203、204、206、211及212具有节点标识(例如将标号203、204、206、211及212作为节点标识,节点标识的形式并非以此为限)、及关联该节点标识的父节点的节点标识。各所述查询项至少显示一个输入项。在本实施例中,各所述查询项至少显示字段名208及条件值209两个输入项。可选地,各查询项还可显示比较符。各输入项的形式可以为文字输入框、下拉选择输入框以及范围提供输入框中的任一项或多项。每个查询项优选地显示2至4个输入项。在一些变化例中,查询项可仅显示一个输入项,根据该输入项的输入内容,可判断是否需要继续显示第二个输入项。例如,该一个数据项要求输入用户行为。第一个输入项是用户行为类型,如选择“购买商品”,则会有第二项输入哪个商品。如选择“退出会员”,则不显示第二个输入项。
上述根嵌套查询组、子嵌套查询组及查询项可以组件的形式实现。上述根嵌套查询组、子嵌套查询组及查询项所具有的节点标识、节点标识关联的父节点的节点标识(及可选地层级信息)可均储存于一储存模块,并不显示在用户界面上,而关联该节点标识的关系运算信息可显示于用户界面上。上述的父节点的节点标识及可选地层级信息可在当前节点生成前获得其父节点的信息及父节点所在层的全部信息(进一步还可获取祖父节点及祖父节点所在层的全部信息,可以此类推),根据这些获得的信息,可根据预存的、经由数据统计确定的方式自动生成当前节点。此外,由于用户可能会有额外设置某些层级查询项数量、形式、输入项数量的限制的需求,本发明还可根据层级信息快速定位到具体的节点已进行限制和操作。
在步骤S120的一个实施例中,查询项可根据用户输入的字段名,自动生成关联该字段名的条件值209的候选值。具体而言,首先,可接收增加字段名的输入框的指令,显示字段名的输入框,接收在所述输入框输入的字段名,根据所述字段名自动生成关联该字段名的条件值的候选值。
在上述实施例的一个实现方式中,可根据所述字段名自所述动态树形查询结构所查询的数据库中获取关联该字段名的一个或多个属性,将所述一个或多个属性作为关联该字段名的条件值的候选值,在所述条件值的输入框中提供所述候选值的下拉选项。例如,接收用户输入的字段名208为性别,在所查询的数据库中获取关联该字段名的一个属性(存在、不存在),将该属性(存在、不存在)作为关联该字段名的条件值209的候选值。
在上述实施例的另一个实现方式中,可根据所述字段名自已生成的历史动态树形查询结构(例如当前正生成的动态树形查询结构或者历史已完全生成的历史动态树形查询结构)中匹配所述字段名,根据历史动态树形查询结构中具有相同所述字段名的查询项,自动生成关联该字段名的条件值的候选值。例如,接收用户输入的字段名208为性别,在生成的历史动态树形查询结构中查询字段名208为性别的查询项,可发现部分查询项中字段名208为性别的查询项的条件值209的候选值为“男”、“女”、“其他”,另一部分查询项中字段名208为性别的查询项的条件值209的候选值为“存在”、“不存在”。可将数量较多的查询项,自动生成关联该字段名的条件值的候选值,或者可提供两种查询项以生成一选择窗口供用户进行选择。
在上述实施例的又一个实现方式中,可根据所述字段名自查询方法所依赖的网络服务或程序代码(例如,可以在搜索引擎)中搜索该字段名,获取搜索结果中该字段名的N个关联数据,对关联数据进行解析获得关联该字段名的一个或多个属性,将所述一个或多个属性作为关联该字段名的条件值的候选值,在所述条件值的输入框中提供所述候选值的下拉选项,其中,N为大于等于1的整数。例如,接收用户输入的字段名208为性别,在搜索引擎中搜索该字段名(可限定搜索范围以减少误差),例如,在本实施例中,在注册页面搜索字段名性别,获得性别的关联数据:“空格”、“男”、“女”、“其他”。对这些关联数据进行筛选,将无意义的“空格”删除,将“男”、“女”、“其他”作为关联该字段名208的条件值209的候选值。
在上述实施例的一个变化例中,在同一个动态树形查询结构中,当生成多个查询项,且识别该多个查询项输入有相同的字段名时,将关联该多个查询项的父节点的节点标识的关系运算信息自动设置为或运算。
在上述实施例的又一个变化例中,动态树形查询结构也可按类似的方式生成。例如可按如下步骤生成:生成一个或多个查询项,根据所述一个或多个查询项自已生成的多个历史动态树形查询结构(例如当前正生成的动态树形查询结构或者历史已完全生成的历史动态树形查询结构)中匹配所述一个或多个查询项,若具有相同的所述一个或多个查询项的查询项,在将该历史动态树形查询结构作为当前动态树形查询结构。
以上各个实施例和变化例可单独在本发明中使用,或者也可结合两个或多个来使用,本发明并非以此为限。
S130:根据所述动态树形查询结构的叶子节点的至少一个输入项进行数据查询,逐层将所查询的数据按子嵌套查询组的关系运算信息进行关系运算并传递至所述根嵌套查询组以获得查询结果。
具体而言,在步骤S130中,首先根据各个叶子节点的查询项进行数据查询,然后将所查询的数据传送至各个叶子节点的父节点(子嵌套查询组)并按该父节点的关系运算信息进行关系运算,按照树形结构逐层传输和关系运算,直至根嵌套查询组,并按根嵌套查询组的关系运算信息进行关系运算以获得查询结果。
在上述各个实施例中,根嵌套查询组、子嵌套查询组可暴露两个接口,其中一个接口可获取全部动态树形查询结构,给外部调用者取得结果;其中另一个接口可在更新某节点结构时,传递给查询项,用于更新数据。各查询项还关联用于显示的渲染数据及一个回调函数接口,用于将更新数据给根嵌套查询组、子嵌套查询组。
在上述各个实施例中,用户界面在用户操作前可提供默认的动态树形查询结构。默认的动态树形查询结构至少需要3个参数:默认嵌套层级数(即树形结构的层数),用于控制允许有几层嵌套结构;查询项数据,用于渲染查询项;默认查询项组成的层级结构。
下面,通过图4至图8说明本发明提供的用户界面的一种触控操作。图4至图7示出了根据本发明实施例的用户界面的一种触控操作的示意图。图8示出了经由图4至图7的触控操作更新的动态树形查询结构的树形图。
如图4所示,在生成动态树形查询结构的用户界面中,已生成的所述历史动态树形查询结构的各子节点与父节点显示为相连接,由此可图像化显示出各节点的层级关系。在图4至图7中,根嵌套查询组201及各所述子嵌套查询组202、205及210在生成动态树形查询结构的用户界面中具有边框(240、216、214、213)。在图1的步骤S120中,还可对已生成的所述动态树形查询结构进行修改,例如通过触控操作的方式。
首先,识别用户在所述用户界面上的拖曳手势。当用户手指400在用户界面上按压并开始移动(如图4至图5),随着用户手指400的按压,将包含用户手指400且距离用户手指400最近的边框216确定为所要修改的子树(该子树包括边框216关联的子嵌套查询组210及其子节点211、212,如图8所示)。边框216及边框216内所显示的内容作为整体随用户手指400的移动而移动。当用户手指400将一子树(在一些实施例中,子树可仅包括叶子节点)自其父节点205的边框214内拖曳至其父节点205的边框214外,此时,可不显示将子树的其父节点的连接。当用户手指400完成拖曳手势,可根据其手势终点位置(如图6,用户手指400的手势终点位置,也就是说用户手指400自图4所示的位置开始用户界面拖曳至图6所示位置)判断包含该手势终点位置且距离该手势终点位置最近的边框216对应的子嵌套查询组202(也可以是根节点201)。将该子树的根节点(本实施例中为节点210)与该子嵌套查询组(在本实施例中为节点202)连接,并更新该子树的根节点210的父节点的节点标识(在本实施例中,更新为202)。在用户界面上,更新的动态树形查询结构可参见图7,更新的树形结构可参见图8。可选地,在拖曳手势的运动过程中,所选中的子树随用户手指运动,其他查询项及嵌套查询组可移动以让出一定的空间容纳随手指运动的子树,由此,其他查询项及嵌套查询组可不被随手指运动的子树遮挡。
下面,结合图9和图10,描述本发明实施例的用户界面的另一种触控操作。图9和图10示出了根据本发明实施例的用户界面的另一种触控操作的示意图。
在本实施例中,可通过用户手势生成默认动态树形查询结构。
首先,识别用户手指400在所述用户界面上的拖曳手势。在所述拖曳手势运动过程中,按所述拖曳手势的拖曳距离逐层生成所述动态树形查询结构。具体而言,在所述拖曳手势运动过程中,按所述拖曳手势在所述第一方向(即X方向)上的拖曳距离逐层确定所述动态树形查询结构的层数。按所述拖曳手势在第二方向(Y方向,Y方向垂直于X方向)上的拖曳距离确定所述动态树形查询结构的当前层的节点数量。如图9,用户手指400从手势初始位置拖曳至手势终点位置,其沿X方向移动的距离例如为X1,可根据预设单位距离x,计算当前动态树形查询结构的层数(X1/x,取整,在本实施例中,生成三层结构,根节点301、节点302、及叶子节点);其沿Y方向移动的距离例如为Y1,可根据预设单位距离y(可选地,一个单位距离y,默认生成两个查询项即叶子节点303、304),计算当前动态树形查询结构的当前层的节点数量(Y1/y,取整)。继续如图10所示,在图9的动态树形查询结构生成后,用户手指400从手势初始位置拖曳至手势终点位置,其沿X方向移动的距离例如为X2,可根据预设单位距离x,计算当前动态树形查询结构的层数(X2/x,取整,在本实施例中,生成三层结构根节点301(已在图9中生成)、节点305、及叶子节点);其沿Y方向移动的距离例如为Y2,可根据预设单位距离y(可选地,一个单位距离y,默认生成两个查询项即叶子节点306、307),计算当前动态树形查询结构的当前层的节点数量(Y2/y,取整)。如图9和图10所示,利用手势拖曳来生成通常通过分段的拖曳手势生成多个子树来完成。在一些实施例中,可根据手指的初始位置,确定所要生成的子树的父节点。
上述各个附图仅仅是示意性地示出本发明的各个实施例,本领域技术人员可实现更多的变化方式,本发明并非以此为限。
下面参见图11,图11示出了根据本发明实施例的动态数据查询装置的模块图。数据动态查询装置500包括用户界面提供模块510及嵌套模块520。
用户界面提供模块510用于提供生成动态树形查询结构的用户界面,接收用户在所述用户界面上的输入,并显示已生成的动态树形查询结构。嵌套模块520用于至少接收用户在所述用户界面上的输入以生成所述动态树形查询结构。所述动态树形查询结构包括根嵌套查询组、子嵌套查询组及查询项。根嵌套查询组作为所述动态树形查询结构的根节点,所述根嵌套查询组具有节点标识及与关联该节点标识的关系运算信息。子嵌套查询组作为所述动态树形查询结构的中间节点,所述子嵌套查询组具有节点标识、关联该节点标识的关系运算信息及关联该节点标识的父节点的节点标识。查询项作为所述动态树形查询结构的叶子节点,所述查询项具有节点标识、及关联该节点标识的父节点的节点标识,各所述查询项至少显示一个输入项。嵌套模块520还用于根据所述动态树形查询结构的叶子节点的至少一个输入项进行数据查询,逐层将所查询的数据按子嵌套查询组的关系运算信息进行关系运算并传递至所述根嵌套查询组以获得查询结果。在一些实施例中,上述模块通过web组件的形式构成。
相比现有技术,本发明具有如下优势:
1)当需要嵌套查询时,本发明通过提供用户界面,接收用户操作生成动态树形查询结构进行查询来构建一个灵活,可复用的嵌套查询以减少代码维护成本,同时,本发明不限嵌套层数,支持无限嵌套层级,适用各种业务场景;
2)通过当前已形成的树形查询结构、历史形成的树形查询结构、数据库内的数据或网络上的数据根据字段名自动生成该字段名关联的条件值,实现了查询项的自动生成,减少用户额外操作;
3)通过历史数据根据查询项自动生成动态树形查询结构,实现了动态树形查询结构的自动生成,减少用户额外操作;
4)通过在用户界面上图形化显示动态树形查询结构,并通过手势控制的方式,实现动态树形查询结构节点的移动以及动态树形查询结构的层数和节点数的确定,无需增加用户的额外操作,提高用户体验。
以上具体地示出和描述了本发明的示例性实施方式。应该理解,本发明不限于所公开的实施方式,相反,本发明意图涵盖包含在所附权利要求范围内的各种修改和等效置换。
Claims (17)
1.一种数据动态查询方法,其特征在于,包括:
提供生成动态树形查询结构的用户界面;
至少接收用户在所述用户界面上的输入以生成所述动态树形查询结构,所述动态树形查询结构包括:
根嵌套查询组,作为所述动态树形查询结构的根节点,所述根嵌套查询组具有节点标识及与关联该节点标识的关系运算信息;
多个子嵌套查询组,作为所述动态树形查询结构的中间节点,所述子嵌套查询组具有节点标识、关联该节点标识的关系运算信息及关联该节点标识的父节点的节点标识;
多个查询项,作为所述动态树形查询结构的叶子节点,所述查询项具有节点标识、及关联该节点标识的父节点的节点标识,各所述查询项至少显示一个输入项;
根据所述动态树形查询结构的叶子节点的至少一个输入项进行数据查询,逐层将所查询的数据按子嵌套查询组的关系运算信息进行关系运算并传递至所述根嵌套查询组以获得查询结果。
2.如权利要求1所述的数据动态查询方法,其特征在于,各所述查询项至少显示字段名及条件值两个输入项,所述查询项按如下方式生成:
接收增加字段名的输入框的指令;
显示字段名的输入框;
接收在所述输入框输入的字段名;
根据所述字段名自动生成关联该字段名的条件值的候选值。
3.如权利要求2所述的数据动态查询方法,其特征在于,所述根据所述字段名自动生成关联该字段名的条件值包括:
根据所述字段名自所述动态树形查询结构所查询的数据库中获取关联该字段名的一个或多个属性,将所述一个或多个属性作为关联该字段名的条件值的候选值,在所述条件值的输入框中提供所述候选值的下拉选项。
4.如权利要求2所述的数据动态查询方法,其特征在于,所述根据所述字段名自动生成关联该字段名的条件值包括:
根据所述字段名自已生成的历史动态树形查询结构中匹配所述字段名,根据历史动态树形查询结构中具有相同所述字段名的查询项,自动生成关联该字段名的条件值的候选值。
5.如权利要求2所述的数据动态查询方法,其特征在于,所述根据所述字段名自动生成关联该字段名的条件值包括:
根据所述字段名自查询方法所依赖的网络服务或程序代码中搜索该字段名,获取搜索结果中该字段名的N个关联数据,对关联数据进行解析获得关联该字段名的一个或多个属性,将所述一个或多个属性作为关联该字段名的条件值的候选值,在所述条件值的输入框中提供所述候选值的下拉选项,其中,N为大于等于1的整数。
6.如权利要求2所述的数据动态查询方法,其特征在于,在一个动态树形查询结构中:
当生成多个查询项,且识别该多个查询项输入有相同的字段名时,将关联该多个查询项的父节点的节点标识的关系运算信息自动设置为或运算。
7.如权利要求1所述的数据动态查询方法,其特征在于,所述至少接收用户在所述用户界面上的输入以生成所述动态树形查询结构包括:
生成一个或多个查询项;以及
根据所述一个或多个查询项自已生成的多个历史动态树形查询结构中匹配所述一个或多个查询项,若具有相同的所述一个或多个查询项的查询项,在将该历史动态树形查询结构作为当前动态树形查询结构。
8.如权利要求1所述的数据动态查询方法,其特征在于,所述查询项显示一个输入项,根据该输入项的输入内容判断是否需要显示另一个输入项。
9.如权利要求1至8任一项所述的数据动态查询方法,其特征在于,所述根嵌套查询组包括所有子节点的数据信息。
10.如权利要求1至8任一项所述的数据动态查询方法,其特征在于,所述关系运算信息包括和运算和或运算。
11.如权利要求1至8任一项所述的数据动态查询方法,其特征在于,所述输入项还包括比较符。
12.如权利要求1至8任一项所述的数据动态查询方法,其特征在于,所述输入项的形式包括如下形式中的一种或多种:文字输入框、下拉选择输入框以及范围提供输入框。
13.如权利要求1至8任一项所述的数据动态查询方法,其特征在于,在生成动态树形查询结构的用户界面中,
已生成的所述历史动态树形查询结构的各子节点与父节点显示为相连接。
14.如权利要求13所述的数据动态查询方法,其特征在于,所述根嵌套查询组及各所述子嵌套查询组在生成动态树形查询结构的用户界面中显示有边框,所述至少接收用户在所述用户界面上的输入以生成所述动态树形查询结构还包括:
识别用户在所述用户界面上的拖曳手势;
当所述拖曳手势将一子树自其父节点的边框内拖曳至其父节点的边框外的手势终点位置;
判断包含该手势终点位置且距离该手势终点位置最近的边框对应的子嵌套查询组;以及
将该子树的根节点与该子嵌套查询组连接,并更新该子树的根节点的父节点的节点标识。
15.如权利要求13所述的数据动态查询方法,其特征在于,所述至少接收用户在所述用户界面上的输入以生成所述动态树形查询结构还包括:
识别用户在所述用户界面上的拖曳手势;
在所述拖曳手势运动过程中,按所述拖曳手势的拖曳距离逐层生成所述动态树形查询结构。
16.如权利要求15所述的数据动态查询方法,其特征在于,在所述拖曳手势运动过程中,按所述拖曳手势的拖曳距离逐层生成所述动态树形查询结构还包括:
按所述拖曳手势在所述第一方向上的拖曳距离逐层确定所述动态树形查询结构的层数;
按所述拖曳手势在第二方向上的拖曳距离确定所述动态树形查询结构的当前层的节点数量,所述第二方向垂直于所述第一方向。
17.一种数据动态查询装置,其特征在于,包括:
用户界面提供模块,用于提供生成动态树形查询结构的用户界面,接收用户在所述用户界面上的输入,并显示已生成的动态树形查询结构;
嵌套模块,用于:
至少接收用户在所述用户界面上的输入以生成所述动态树形查询结构,所述动态树形查询结构包括:
根嵌套查询组,作为所述动态树形查询结构的根节点,所述根嵌套查询组具有节点标识及与关联该节点标识的关系运算信息;
多个子嵌套查询组,作为所述动态树形查询结构的中间节点,所述子嵌套查询组具有节点标识、关联该节点标识的关系运算信息及关联该节点标识的父节点的节点标识;
多个查询项,作为所述动态树形查询结构的叶子节点,所述查询项具有节点标识、及关联该节点标识的父节点的节点标识,各所述查询项至少显示一个输入项;
根据所述动态树形查询结构的叶子节点的至少一个输入项进行数据查询,逐层将所查询的数据按子嵌套查询组的关系运算信息进行关系运算并传递至所述根嵌套查询组以获得查询结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710855870.0A CN107729396B (zh) | 2017-09-20 | 2017-09-20 | 数据动态查询方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710855870.0A CN107729396B (zh) | 2017-09-20 | 2017-09-20 | 数据动态查询方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107729396A true CN107729396A (zh) | 2018-02-23 |
CN107729396B CN107729396B (zh) | 2020-01-31 |
Family
ID=61207269
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710855870.0A Active CN107729396B (zh) | 2017-09-20 | 2017-09-20 | 数据动态查询方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107729396B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109840257A (zh) * | 2018-12-15 | 2019-06-04 | 中国平安人寿保险股份有限公司 | 数据库查询方法、装置、计算机装置及可读存储介质 |
CN109918394A (zh) * | 2019-01-23 | 2019-06-21 | 中国平安人寿保险股份有限公司 | 数据查询方法、***、计算机装置及计算机可读存储介质 |
CN110222014A (zh) * | 2019-06-11 | 2019-09-10 | 苏州浪潮智能科技有限公司 | 分布式文件***crush map维护方法及相关组件 |
CN111831882A (zh) * | 2019-04-16 | 2020-10-27 | 阿里巴巴集团控股有限公司 | 一种查询交互方法及装置 |
CN113064911A (zh) * | 2020-01-02 | 2021-07-02 | 北京中关村科金技术有限公司 | 查询方法、装置以及存储介质 |
CN114491172A (zh) * | 2022-04-07 | 2022-05-13 | 深圳竹云科技股份有限公司 | 树形结构节点的快速检索方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102207960A (zh) * | 2011-05-25 | 2011-10-05 | 盛乐信息技术(上海)有限公司 | 一种触控设备的搜索引擎及方法 |
CN105447098A (zh) * | 2015-11-10 | 2016-03-30 | 中国建设银行股份有限公司 | 一种信息查询方法及装置 |
CN106933889A (zh) * | 2015-12-31 | 2017-07-07 | 华为技术有限公司 | 用于筛选的规则的配置方法、显示方法和客户端 |
-
2017
- 2017-09-20 CN CN201710855870.0A patent/CN107729396B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102207960A (zh) * | 2011-05-25 | 2011-10-05 | 盛乐信息技术(上海)有限公司 | 一种触控设备的搜索引擎及方法 |
CN105447098A (zh) * | 2015-11-10 | 2016-03-30 | 中国建设银行股份有限公司 | 一种信息查询方法及装置 |
CN106933889A (zh) * | 2015-12-31 | 2017-07-07 | 华为技术有限公司 | 用于筛选的规则的配置方法、显示方法和客户端 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109840257A (zh) * | 2018-12-15 | 2019-06-04 | 中国平安人寿保险股份有限公司 | 数据库查询方法、装置、计算机装置及可读存储介质 |
CN109840257B (zh) * | 2018-12-15 | 2023-11-21 | 中国平安人寿保险股份有限公司 | 数据库查询方法、装置、计算机装置及可读存储介质 |
CN109918394A (zh) * | 2019-01-23 | 2019-06-21 | 中国平安人寿保险股份有限公司 | 数据查询方法、***、计算机装置及计算机可读存储介质 |
CN109918394B (zh) * | 2019-01-23 | 2023-11-28 | 中国平安人寿保险股份有限公司 | 数据查询方法、***、计算机装置及计算机可读存储介质 |
CN111831882A (zh) * | 2019-04-16 | 2020-10-27 | 阿里巴巴集团控股有限公司 | 一种查询交互方法及装置 |
CN110222014A (zh) * | 2019-06-11 | 2019-09-10 | 苏州浪潮智能科技有限公司 | 分布式文件***crush map维护方法及相关组件 |
CN110222014B (zh) * | 2019-06-11 | 2022-03-08 | 苏州浪潮智能科技有限公司 | 分布式文件***crush map维护方法及相关组件 |
CN113064911A (zh) * | 2020-01-02 | 2021-07-02 | 北京中关村科金技术有限公司 | 查询方法、装置以及存储介质 |
CN113064911B (zh) * | 2020-01-02 | 2024-04-19 | 北京中关村科金技术有限公司 | 查询方法、装置以及存储介质 |
CN114491172A (zh) * | 2022-04-07 | 2022-05-13 | 深圳竹云科技股份有限公司 | 树形结构节点的快速检索方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107729396B (zh) | 2020-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107729396A (zh) | 数据动态查询方法及装置 | |
US7461077B1 (en) | Representation of data records | |
CN101114301B (zh) | 在计算机***的数据库中进行导航的方法和*** | |
CN105849725B (zh) | 构造用于针对多维数据结构执行的查询 | |
US5420978A (en) | Method and apparatus for customizing a schedule display | |
US10984051B2 (en) | System and method for querying a data repository | |
CN101727322B (zh) | 优化物料清单管理界面的方法及装置 | |
CN104573185B (zh) | 高速列车技术指标的处理方法及装置 | |
CN102012945B (zh) | 一种面向用户的数据库管理*** | |
CN114510611B (zh) | 一种构建元数据血缘图谱的方法、装置及相关设备 | |
CN102222110A (zh) | 数据处理装置和数据处理方法 | |
CN102819557B (zh) | 数据查询处理装置和数据查询处理方法 | |
US11880740B2 (en) | Facilitating machine learning configuration | |
US11475070B2 (en) | System and method for querying a data repository | |
CN105956087A (zh) | 数据及代码版本管理***及方法 | |
US11423038B2 (en) | Data analysis system and method | |
US7818328B2 (en) | API for obtaining unambiguous representation of objects in a relational database | |
US8886646B2 (en) | Field extensibility for analytical reports | |
CN107077392A (zh) | 用于可视化修改的预取高速缓存 | |
CN115329504B (zh) | 一种基于复杂产品结构的bom构建方法 | |
CN103455516B (zh) | 一种运维平台及数据库的维护方法 | |
JP2007133624A (ja) | 連結関係情報を用いた情報管理方法及び装置 | |
CN103970900B (zh) | 基于工业现场的多维交叉数据柔性管理方法及*** | |
KR20180077830A (ko) | 비공유 아키텍처 기반의 분산 스트림 처리 엔진에서 관계형 질의를 처리하는 방법, 이를 수행하기 위한 기록 매체 및 장치 | |
CN102841892A (zh) | 一种关系数据的服务封装***和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |