一种基于多值属性的排序方法和设备的制作方法

文档序号:6358987阅读:142来源:国知局
专利名称:一种基于多值属性的排序方法和设备的制作方法
技术领域
本发明涉及通信技术领域,尤其涉及一种基于多值属性的排序方法和设备。
背景技术
随着互联网技术和数据库技术的发展,传统的关系数据库的一个列只能具有一个值的限制对应用的数据建模和数据过滤带来了不便。例如,视频的描述信息中一个视频可能具有多个类别信息;一个用户的通信录中可以具有多个Email地址等。现在,业界出现了目录服务器等支持多值属性的数据库。支持多值属性的数据库中的实体可以具有多值属性,这里的多值属性就是指可以有多个属性值的属性。支持多值属性的数据库中的实体相当于关系数据库中的行,实体的属性相当于关系数据库中的列。现有的支持多值属性的数据库,由于实体具有多值属性,因此有的数据库支持按照多值属性排序,在排序的过程中每个实体所有满足条件的多值属性的值(即多值属性值)都可以决定该实体在排序结果集中的位置。由于多值属性有多个属性值,一个实体对应的数据可能在结果集中多个位置出现,导致应用无法从返回的结果集中获知实体出现在某个位置的原因。

发明内容
本发明实施例提供一种基于多值属性的排序方法和设备,可以在结果集中直观的显示实体的排序属性值,从而可以获知实体出现在某个位置的原因,满足应用的需求。本发明实施例一方面提供了一种基于多值属性的排序方法,包括获取实体的多值属性排序方式指示,所述实体具有多值属性;根据所述多值属性排序方式指示所指示的多值属性排序方式来确定实体的排序属性值,并根据排序属性值对所述实体进行排序得到排序结果;根据接收到的对实体进行排序的查询请求,返回携带有所述排序属性值的排序结果,所述查询请求携带多值属性排序方式指示和返回排序属性值指示。本发明实施例另一方面提供了一种基于多值属性的排序设备,包括获取单元,用于获取实体的多值属性排序方式指示,所述实体具有多值属性;排序单元,根据所述多值属性排序方式指示所指示的多值属性排序方式来确定实体的排序属性值,并根据排序属性值对所述实体进行排序得到排序结果;接收单元,用于接收对实体进行排序的查询请求,所述查询请求携带多值属性排序方式指示和返回排序属性值指示;发送单元,用于根据接收到的对实体进行排序的查询请求,返回携带有所述排序属性值的排序结果。本发明实施例提供的基于多值属性的排序方法和设备,获取实体的多值属性排序方式指示;根据所述多值属性排序方式指示所指示的多值属性排序方式来确定实体的排序属性值,并根据排序属性值对所述实体进行排序得到排序结果,所述实体具有多值属性;根据接收到的对实体进行排序的查询请求,返回携带有所述排序属性值的排序结果,所述查询请求携带多值属性排序方式指示和返回排序属性值指示。因此,可以在结果集中直观的显示实体的排序属性值,从而可以获知实体出现在某个位置的原因,满足了应用的需求,方便应用对排序结果进行进一步的处理。


为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例提供的一种基于多值属性的排序方法流程图;图2为本发明实施例提供的另一种基于多值属性的排序方法的流程图;图3为本发明实施例提供的另一种基于多值属性的排序方法的流程图;图4为本发明实施例提供的另一种基于多值属性的排序方法的流程图;图5为本发明实施例提供的一种基于多值属性的排序设备的结构图;图6为本发明实施例提供的另一种基于多值属性的排序设备的结构图;图7为本发明实施例提供的另一种基于多值属性的排序设备的结构图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。支持多值属性的数据库的数据按域的方式进行组织,域和关系数据库中的表类似,域内包含的数据项称为实体(不同的支持多值属性的数据库中可能有不同的名称,例如条目、项等,这里统称为实体)。一个域内的实体具有相同的类型,每个实体在域内具有一个唯一的标识,该标识和关系数据库中行的标识类似;而且一个实体具有一个或者多个属性,属性名称和关系数据库列名类似,一个多值属性可以具有一个或者多个属性值,属性值和关系数据库中的列的值类似。支持多值属性的数据库中的属性允许存在多个值,而且可以根据这多个值进行数据过滤。可以具有多个属性值的属性称为多值属性,相应的,多值属性的值可以称为多值属性值。如表1所示为支持多值属性的数据库一个域的数据。其中,序号1和2为实体的标识;Name,Sex, Email为实体的属性。实体的属性Email允许一个实体有多个Email,那么属性Email就是多值属性。具体的,实体1的Name属性的属性值为张三,实体2的Name 属性的属性值为李四;实体1 属性的属性值为男,实体2的Sex属性的属性值为男; 实体1的Email属性的多值属性值为^iangsanOyahoo. com,实体2的Email属性的多值属性值为 lisiiyahoo. com 禾Π lisiil63. com。
5NameSexEmail1张三男zhangsan@yahoo. com2李四男lisi@yahoo.com lisi@163.com表一如图1所示,本发明实施例提供了一种基于多值属性的排序方法,包括S101,获取实体的多值属性排序方式指示,所述实体具有多值属性;其中,多值属性排序方式指示可以是预先配置的,也可以是从外部获取的,例如从查询请求中获取的。S103,根据所述多值属性排序方式指示所指示的多值属性排序方式来确定实体的排序属性值,并根据排序属性值对所述实体进行排序得到排序结果;其中,多值属性排序方式包括下面任意一种实体的所有多值属性值都作为排序属性值参与排序;实体的多值属性值的平均值作为排序属性值参与排序;实体的多值属性值的总和作为排序属性值参与排序;实体的多值属性值的最大值作为排序属性值参与排序;实体的多值属性值的最小值作为排序属性值参与排序;脚本方式。可选的,可以按照多值属性排序方式,对实体的多值属性值进行计算,确定实体的排序属性值。S105,根据接收到的对实体进行排序的查询请求,返回携带有所述排序属性值的排序结果,所述查询请求携带多值属性排序方式指示和返回排序属性值指示。通过该实施例提供的基于多值属性的排序方法,根据多值属性排序方式指示所指示的多值属性排序方式确定排序属性值,可以在结果集中直观的显示实体的排序属性值, 从而可以获知实体出现在某个位置的原因,满足了应用的需求,方便应用对排序结果进行进一步的处理,比如需将导致实体出现在此位置的排序属性值加亮加粗在网页上显示等。 而且,通过在查询请求中携带多值属性排序方式指示,还可以满足应用灵活的排序需求。如图2所示,本发明实施例提供了另一种基于多值属性的排序方法。这里以结构化查询语言(SQL,Structured Query Language)扩展为例来说明本实施例中的排序方法。S201,服务器接收应用发送的对实体进行排序的查询请求,查询请求中携带多值属性排序方式指示和返回排序属性值指示。其中,所述实体具有多值属性。假设服务器(可以为数据库)中存储有如表二所示的名称为“films”的域。其中, 属性Category为多值属性,实体Cl和C2的属性Category分别有两个多值属性值,其中, Cl的多值属性值为类别1和类别3,C2的多值属性值为类别2和类别4。
TitleLanguageCategoryCl阿凡达英文类别1类别3C2英雄中文类别2类别4表二具体的查询请求为Select*,S0RT_ATTR from films order by CategoryALLasc,其中,SORT ATTR为返回排序属性值指示,ALL为多值属性排序方式指示。本实施例中的多值属性排序方式指示以ALL为例。可选的,多值属性排序方式指示还可以是下面任意一种,但也不限于这几种1)AVG 实体的多值属性值的平均值作为排序属性值参与排序,这种排序方式对于数值型的多值属性值有效。2) SUM:实体的多值属性值的总和作为排序属性值参与排序,这种排序方式对于数值型的多值属性值有效。3)MAX:实体的多值属性值的最大值作为排序属性值参与排序,这种排序方式对于支持比较的多值属性有效,比如多值属性的值为数值或字符串等。4)MIN:实体的多值属性值的最小值最为排序属性值参与排序,这种排序方式对于支持比较的多值属性有效,比如多值属性的值为数值或字符串等。5)脚本方式通过脚本(SCRIPT)的方式,将多值属性值进行计算(可以包括组合)得出一个或者多个值作为排序属性值参与排序。S203,服务器根据多值属性排序方式指示的所有值排序方式对实体的多值属性值进行计算,确定实体的排序属性值。由于排序方式为ALL,因此多值属性的所有值都作为排序属性值参与排序,具体到本例中,就是每个电影的Category属性值都作为排序属性值参与排序。按照ALL排序方式计算后,排序属性值分别为类别1,类别2,类别3和类别4。S205,服务器根据排序属性值对实体进行升序排列,得到排序结果。S207,服务器返回携带有排序属性值的排序结果。返回的排序结果如表三所示。在本实施例中,可选的,查询请求还可以包括过滤条件,例如查询请求为 Select*, S0RT_ATTR from films where Category is not null order by Category ALL asc。其中,where Category is not null为过滤条件,那么在S203之前还包括服务器过滤出满足所述过滤条件的实体,然后执行S203。S203相应的为服务器根据多值属性排序方式指示的所有值排序方式对满足过滤条件的实体的多值属性值进行计算,确定实体的排序属性值。
权利要求
1.一种基于多值属性的排序方法,其特征在于,包括获取实体的多值属性排序方式指示,所述实体具有多值属性;根据所述多值属性排序方式指示所指示的多值属性排序方式来确定实体的排序属性值,并根据排序属性值对所述实体进行排序得到排序结果;根据接收到的对实体进行排序的查询请求,返回携带有所述排序属性值的排序结果, 所述查询请求携带多值属性排序方式指示和返回排序属性值指示。
2.如权利要求1所述的排序方法,其特征在于,根据所述多值属性排序方式指示所指示的多值属性排序方式来确定实体的排序属性值包括按照所述多值属性排序方式对所述实体的多值属性值进行计算,确定实体的排序属性值。
3.如权利要求1或2所述的排序方法,其特征在于,所述查询请求是在获取实体的多值属性排序方式指示之前接收的。
4.如权利要求3所述的排序方法,其特征在于,所述查询请求还包括过滤条件,则根据所述多值属性排序方式指示所指示的多值属性排序方式来确定实体的排序属性值之前还包括过滤出满足所述过滤条件的实体。
5.如权利要求1或2所述的排序方法,其特征在于,还包括预先配置实体的多值属性排序方式指示,相应的,所述查询请求是在根据排序属性值对所述实体进行排序之后接收的。
6.如权利要求5所述的排序方法,其特征在于,还包括当实体的多值属性值更新时, 如果更新的多值属性值影响排序属性值,那么根据多值属性排序方式指示的多值属性排序方式对更新后的多值属性值进行计算,确定新的排序属性值。
7.如权利要求5所述的排序方法,其特征在于,还包括预先配置过滤条件,则根据所述多值属性排序方式指示所指示的多值属性排序方式来确定实体的排序属性值之前,还包括过滤出满足所述过滤条件的实体。
8.如权利要求1至7任一所述的排序方法,其特征在于,所述多值属性排序方式包括下面任意一种实体的所有多值属性值参与排序;实体的多值属性值的平均值作为排序属性值参与排序;实体的多值属性值的总和作为排序属性值参与排序;实体的多值属性值的最大值作为排序属性值参与排序;实体的多值属性值的最小值作为排序属性值参与排序;脚本方式排序。
9.一种基于多值属性的排序设备,其特征在于,包括获取单元,用于获取实体的多值属性排序方式指示,所述实体具有多值属性;排序单元,根据所述多值属性排序方式指示所指示的多值属性排序方式来确定实体的排序属性值,并根据排序属性值对所述实体进行排序得到排序结果;接收单元,用于接收对实体进行排序的查询请求,所述查询请求携带多值属性排序方式指示和返回排序属性值指示;发送单元,用于根据接收到的对实体进行排序的查询请求,返回携带有所述排序属性值的排序结果。
10.如权利要求9所述的排序设备,其特征在于,所述排序单元,具体用于按照所述多值属性排序方式对所述实体的多值属性值进行计算,确定实体的排序属性值,并根据排序属性值对所述实体进行排序得到排序结果,所述实体具有多值属性。
11.如权利要求9或10所述的排序设备,其特征在于,接收单元,具体用于在获取多值属性排序方式指示之前接收对实体进行排序的所述查询请求,所述查询请求携带多值属性排序方式指示和返回排序属性值指示;相应的,所述获取单元所获取的多值属性排序方式指示是从所述查询请求中获取的。
12.如权利要求11所述的排序设备,其特征在于,所述查询请求中还包括过滤条件,相应的,所述排序设备还包括第一过滤单元,用于在所述排序单元根据所述多值属性排序方式指示所指示的多值属性排序方式来确定实体的排序属性值之前,过滤出满足所述过滤条件的实体。
13.如权利要求9或10所述的排序设备,其特征在于,还包括配置单元,用于配置实体的多值属性排序方式指示;相应的,所述获取单元所获取的多值属性排序方式指示是从配置单元中获取的。
14.如权利要求13所述的排序设备,其特征在于,接收单元,具体用于在排序单元根据排序属性值对所述实体进行排序之后接收对实体进行排序的查询请求,所述查询请求携带多值属性排序方式指示和返回排序属性值指示。
15.如权利要求14所述的排序设备,其特征在于,所述查询请求中还包括过滤条件,相应的,所述排序设备还包括第二过滤单元,用于在所述排序单元根据所述多值属性排序方式指示所指示的多值属性排序方式来确定实体的排序属性值之前,过滤出满足所述过滤条件的实体。
全文摘要
本发明实施例提供了一种基于多值属性的排序方法。该包括包括获取实体的多值属性排序方式指示,所述实体具有多值属性;根据所述多值属性排序方式指示所指示的多值属性排序方式来确定实体的排序属性值,并根据排序属性值对所述实体进行排序得到排序结果;根据接收到的对实体进行排序的查询请求,返回携带有所述排序属性值的排序结果,所述查询请求携带多值属性排序方式指示和返回排序属性值指示。本发明实施例可以在结果集中直观的显示实体的排序属性值,从而可以获知实体出现在某个位置的原因,满足应用的需求,方便应用对排序结果进行进一步的处理。
文档编号G06F17/30GK102369528SQ201180001361
公开日2012年3月7日 申请日期2011年8月31日 优先权日2011年8月31日
发明者刘晓, 曹俊亮 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1