条件过滤数据的存取方法及装置制造方法及图纸

技术编号:15289848 阅读:89 留言:0更新日期:2017-05-10 16:58
本发明专利技术公开了一种条件过滤数据的存取方法及装置,涉及数据操作领域,主要目的在于使数据表结构不依赖于条件过滤数据的复杂程度,数据库表中只需要一列数据就可以保存各种类型的条件过滤数据。本发明专利技术的主要技术方案为:将原始条件过滤数据进行分解,生成三叉树结构的条件过滤数据;将所述三叉树结构的条件过滤数据翻译成包含操作符和操作值的字符串,所述字符串的格式为操作值+操作符+操作值,所述操作值为变量、常量或者条件过滤数据,所述操作符包括逻辑操作符,辅助操作符以及比较操作符;将所述字符串保存在数据库中。本发明专利技术主要用于条件过滤数据的存取的过程中。

Access method and device for conditional filtering data

The invention discloses a method and device for access conditions of data filtering, data relating to operation field, the main purpose is to make the complexity of the data table structure does not depend on the condition of data filtering, the database table only need a list of data can be stored in various types of conditions to filter data. The main technical scheme of the invention is that the original condition of filter data decomposition, filter data to generate ternary tree structure; the condition of filtering data of the ternary tree structure of string operator and operation value, the value of the string format operator + + operation value for the operation, the operating value variables, constants or conditions to filter data, the operator including the logical operator, auxiliary operators and comparison operators; the string stored in the database. The invention is mainly used in the process of accessing conditional filtering data.

【技术实现步骤摘要】

本专利技术涉及数据操作领域,尤其涉及一种条件过滤数据的存取方法及装置
技术介绍
软件开发中,通常需要保存一些条件过滤数据,比如“年龄小于18岁的用户”,“汽车速度不能超过120km/h”等。这些数据在需要设置报警条件时很重要。目前,一般常用的保存办法是把这些条件过滤数据直接保存到数据库的一张表中,该数据库表的设计一般包含三列:数据类型,指“年龄”,“速度”等;操作类型,指“大于”,“小于”,“等于”等;操作值,指“18”,“120”。专利技术人在使用上述条件过滤数据的保存时,由于该数据库表中通常只有三列,只能存储一些简单的条件过滤数据,遇到复杂条件过滤数据就很难满足了。比如,“年龄小于18岁但大于80岁”,“地区为北京和上海两个城市的”。要想采用数据库表存储复杂的条件过滤数据,条件过滤数据组成越复杂,数据库表结构就需要越复杂。
技术实现思路
有鉴于此,本专利技术提供一种条件过滤数据存取的方法及装置,主要目的在于使数据表结构不依赖于条件过滤数据的复杂程度,数据库表中只需要一列数据就可以保存各种类型的条件过滤数据。为达到上述目的,本专利技术提供如下技术方案:一方面,本专利技术提供一种条件过滤数据的存取方法,包括:将原始条件过滤数据进行分解,生成三叉树结构的条件过滤数据;将所述三叉树结构的条件过滤数据翻译成包含操作符和操作值的字符串,所述字符串的格式为操作值+操作符+操作值,所述操作值为变量、常量或者条件过滤数据,所述操作符包括逻辑操作符,辅助操作符以及比较操作符;将所述字符串保存在数据库中。另一方面,本专利技术还提供一种条件过滤数据的存取装置,包括:分解单元,用于将原始条件过滤数据进行分解,生成三叉树结构的条件过滤数据;第一翻译单元,用于将所述三叉树结构的条件过滤数据翻译成包含操作符和操作值的字符串,所述字符串的格式为操作值+操作符+操作值,所述操作值为变量、常量或者条件过滤数据,所述操作符包括逻辑操作符,辅助操作符以及比较操作符;保存单元,用于将所述字符串保存在数据库中。本专利技术提供的条件过滤数据的存取方法及装置,将原始条件过滤数据进行分解,生成三叉树结构的条件过滤数据,并将三叉树结构的条件过滤数据翻译成包含操作符和操作值的一条字符串,该一条字符串在数据库中进行保存时,使用数据库表的一列即可完成,与现有技术中使用很多列将条件过滤数据保存到数据库相比,大大简化了操作复杂度,提高了条件过滤数据的存储效率。并且本专利技术中的条件过滤数据用一条字符串存储,能够满足各种复杂的条件过滤数据的存储。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出了本专利技术实施例中的条件过滤数据的存取方法流程图;图2示出了本专利技术实施例中的三叉树结构的条件过滤数据结构示意图;图3示出了本专利技术实施例中的三叉树结构;图4示出了本专利技术实施例中的从所述数据库中读取对应字符串,并将所述字符串翻译为条件过滤数据的方法流程图;图5示出了本专利技术实施例中的一种条件过滤数据的存取装置的组成框图;图6示出了本专利技术实施例中的另一种条件过滤数据的存取装置的组成框图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。本专利技术实施例提供一种条件过滤数据的存取方法,如图1所示,该方法包括:101、将原始条件过滤数据进行分解,生成三叉树结构的条件过滤数据。需要说明的是,对于复杂的条件过滤数据其实是由简单的条件拼接组成的。比如图2表示了复杂存储条件a大于10或者b大于8且小于20的分解情况,从上面的关系,可以发现一个复杂的存储条件可以由一个三叉树结构组成。而一个简单的存储条件可以由“操作值+操作符+操作值”的格式来组成。如果把操作值不仅仅可以是变量(比如b),常量(比如8,“男”);还可以包括简单的条件过滤数据。那么,复杂的存储条件也可以由“操作值+操作符+操作值”组成。故本专利技术实施例中,定义了一种如图3所示的,条件过滤数据三叉树,以便将原始条件过滤数据进行分解,生成三叉树结构的条件过滤数据。该原始的条件过滤数据不论其复杂还是简单,在执行本专利技术实施例时,都需要对原始条件过滤数据进行分解,生成三叉树结构的条件过滤数据。102、将所述三叉树结构的条件过滤数据翻译成包含操作符和操作值的字符串,所述字符串的格式为操作值+操作符+操作值,所述操作值为变量、常量或者条件过滤数据,所述操作符包括逻辑操作符,辅助操作符以及比较操作符。其中,为了将三叉树结构的条件过滤数据翻译成能够在数据库中存储的一条字符串,本本专利技术实施例中定义了用于表达条件过滤数据的所述操作符,该操作符可以为但不局限于逻辑操作符,辅助操作符以及比较操作符。其中,逻辑操作符可以为但不局限于:||(或),&&(且)等,辅助操作符可以为但不局限于:括号(),比较操作可以为但不局限于:大于>,小于<等。在将所述三叉树结构的条件过滤数据翻译成包含操作符和操作值的字符串时,组成的字符串的格式为操作值+操作符+操作值,如前所述的,该操作值可以为变量,也可以为常量,还可以为条件过滤数据,具体的本专利技术实施例对比不进行限制。在将所述三叉树结构的条件过滤数据翻译成包含操作符和操作值的字符串时,可以采用但不局限于以下的方法实现,该方法包括:从所述三叉树结构的根节点开始,基于所述操作符并按照操作值+操作符+操作值的顺序,将所述三叉树结构中的条件过滤数据进行拼接,生成包含操作符和操作值的字符串。例如,条件过滤数据“a大于10或者b大于8且小于20”解释成的字符串可以是这样的“(a>10)||((b>8)&&(b<20))”。103、将所述字符串保存在数据库中。由于翻译成的条件过滤数据为一条字符串,其存储在数据库中时,可以使用数据表中的一列数据进行存储。具体使用那一列进行存储,本专利技术实施例对此不进行限制。本专利技术实施例中,将原始条件过滤数据进行分解,生成三叉树结构的条件过滤数据,并将三叉树结构的条件过滤数据翻译成包含操作符和操作值的一条字符串,该一条字符串在数据库中进行保存时,使用数据库表的一列即可完成,与现有技术中使用很多列将条件过滤数据保存到数据库相比,大大简化了操作复杂度,提高了条件过滤数据的存储效率。并且本专利技术中的条件过滤数据用一条字符串存储,能够满足各种复杂的条件过滤数据的存储。进一步的,在将原始的条件过滤数据转化为一条字符串存储在数据库中之后,当使用所述条件过滤数据时,需要从所述数据库中读取对应字符串,并将所述字符串翻译为条件过滤数据。,本专利技术实施例还提供一种从所述数据库中读取对应字符串,并将所述字符串翻译为条件过本文档来自技高网...
条件过滤数据的存取方法及装置

【技术保护点】
一种条件过滤数据的存取方法,其特征在于,包括:将原始条件过滤数据进行分解,生成三叉树结构的条件过滤数据;将所述三叉树结构的条件过滤数据翻译成包含操作符和操作值的字符串,所述字符串的格式为操作值+操作符+操作值,所述操作值为变量、常量或者条件过滤数据,所述操作符包括逻辑操作符,辅助操作符以及比较操作符;将所述字符串保存在数据库中。

【技术特征摘要】
1.一种条件过滤数据的存取方法,其特征在于,包括:将原始条件过滤数据进行分解,生成三叉树结构的条件过滤数据;将所述三叉树结构的条件过滤数据翻译成包含操作符和操作值的字符串,所述字符串的格式为操作值+操作符+操作值,所述操作值为变量、常量或者条件过滤数据,所述操作符包括逻辑操作符,辅助操作符以及比较操作符;将所述字符串保存在数据库中。2.根据权利要求1所述的方法,其特征在于,将所述三叉树结构的条件过滤数据翻译成包含操作符和操作值的字符串包括:从所述三叉树结构的根节点开始,基于所述操作符并按照操作值+操作符+操作值的顺序,将所述三叉树结构中的条件过滤数据进行拼接,生成包含操作符和操作值的字符串。3.根据权利要求1或2所述的方法,其特征在于,还包括:当需要使用所述条件过滤数据时,从所述数据库中读取对应字符串,并将所述字符串翻译为原始条件过滤数据。4.根据权利要求3所述的方法,其特征在于,将所述字符串翻译为原始条件过滤数据包括:对所述字符串进行识别,并按照操作符的优先级将所述字符串拆分为操作值+操作符+操作值格式的条件过滤数据;基于所述操作符将所述操作值+操作符+操作值格式的条件过滤数据生成三叉树结构的条件过滤数据;将所述三叉树结构的条件过滤数据进行聚合,得到所述原始条件过滤数据。5.根据权利要求4所述的方法,其特征在于,在对所述字符串进行识别,并按照操作符的优先级将所述字符串拆分为操作值+操作符+操作值格式的条件过滤数据之前,还包括:设置所述操作符的优先级。6.一种条件过滤数据的存取装...

【专利技术属性】
技术研发人员:曹志明
申请(专利权)人:北京国双科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1