一种能体现人际关系网的网站系统的制作方法

文档序号:6397234阅读:315来源:国知局
专利名称:一种能体现人际关系网的网站系统的制作方法
技术领域
本发明涉及一种搜索人际关系路径的方法,特别涉及到对现有的关系型数据库中 SQL语句不擅长搜索人际关系路径方法的改进。
背景技术
随着现在各种社交网站、社交软件及社交工具的兴起,这些大型网站通常都有数 千万甚至数亿的会员量,假设每个会员和其他100个会员有关联关系(朋友、亲戚、同事或 其它关系),这样海量的数据构建的人际关系网是相当复杂的。挖掘其中会员间的关系路径 和关系图(关系图是关系路径的集合),可以增进人与人之间的信任,具有广泛的意义。并 且,依据“六度分割理论”会发现我们距离任何一个人的关系都不远,可以增进社会和谐。当A和B、C有关联关系,C和D有关联关系,如果我们想求解A和D之间的关系 路径,对于像这样简单的数据,很容易就得到路径是A<->C<->D。然而,假设在一个数据库 中,任意一个节点和其它任意100个节点有关联关系,当遍历一个节点的第一层关系时,将 遍历100个节点,当遍历一个节点的第二层关系时,将遍历100X100 = 10000个节点,依次 类推,当遍历第6层关系时,将遍历IO12个节点。依本技术领域人员的公职常识所知,当前 绝大部分网站的数据都是保存在关系型数据库中,而关系型数据库是以表为基本数据结构 的,其SQL语句并不擅长于此类关系路径的搜索。本发明正是为求解海量数据(百万级以 上)库中两个节点的关联关系路径,以及由多条关系路径组成关系图。

发明内容
本发明的目的是实现一种能体现人际关系网的网站系统。突破了由于关系型数据 库的结构限制在关系路径搜索上造成的效率低下问题。为达到上述目的,实现一种能体现人际关系网的网站系统,分为4个步骤1)收集数据保存到关系型数据库中。包括一个或者一个以上的保存用户所有资 料的关系型数据库[101],数据库中的用户ID字段是用户会员(这里所指的会员,可以是 个人、单位以及其它实体,被称为一个节点)的唯一标示(不重复,能唯一标示一个用户), 使用整型类型的数据,用户的其它资料数据根据相应需求设置。为了突出主题,会员注册资 料、登录、加好友等一般性步骤不在此赘述。2)从关系型数据库中抽取节点关系数据保存成网状数据结构,并实时更新 [104]。在内存或硬盘中创建一个用户基本列表[201],用户基本列表[201]的索引号和用 户ID有一个简单的对应关系,互相可以通过加上或减去一个常数计算所得,用户基本列表[201]中保存的成员是用户相应的关系列表句柄。读取关系型数据库中所有的用户ID以及 需要参加判断的用户其它数据,分别创建每个用户的关系列表,并将关系列表的句柄存入 用户基本列表[201]的相应位置。用户的关系列表中保存的是和此用户有关联关系的用户 ID。(如图2所示)3)在网状数据结构的节点关系数据区中,搜索节点关系路径[105]。需要请求路 径关系的应用程序(这里的应用程序可以是运行于前端应用服务器上的应用程序,也可以 是运行于终端客户端上的应用程序)把搜索条件发送至服务端,服务端接收到搜索条件 [301],先将源ID和目标ID组合成一个唯一的ID,然后根据这个组合ID和其它的输入条件 在关系路径缓存区中搜索[302]。如果没有找到,就依据输入条件,在网状数据结构的节点 关系数据区中搜索关系路径[305],直到完成所有搜索,然后将搜索的结果和相关联的条件 保存至关系路径缓存区[306],以加速下一次的同类搜索。然后将搜索结果发送至请求客户 端[307]。(如图3所示)4)在关系型数据库中使用SQL语句搜索关系路径节点上的用户的其它资料 [106],并组成呈现方式[107]。在接收到第C3)步搜索的结果之后,发送请求的应用程序可 以根据搜索结果的关系路径去关系型数据库服务器上搜索路径中成员的其它数据(比如 姓名、性别等),然后根据这些信息以及关系路径条数组成相应的呈现方式。比如如果是 一条关系路径,可以呈现成条状的由用户姓名构建的路径;如果是多条关系路径,可以呈现 成树状的、网状的或者立体网状的由用户名称构成的关系图。呈现方式可以由美术人员依 据需求进行设计,不局限于上述呈现方式。采用上述方法,从保存用户所有资料的关系型数据库[101]中抽取节点关系数 据,以网状结构(如图2所示)保存在某个数据区[102]中,然后使用自定义的算法流程 (如图4,是一种实施方案的算法流程)在此节点关系数据区中搜索节点关系路径,这样就 避免了关系型数据库中SQL语句不擅长求解两节点关系路径的问题,然后在关系型数据库 中搜索关系路径节点上用户的其它资料[106],最后组成某种形式(条形路径状或者网状) 的呈现方式。可以重复步骤C3)和步骤G),以完成不同条件的搜索。本发明的有益效果1)从结构特点和理论分析如下通常海量的用户数据都被保存在关系型数据库中,在数据库的设计上为了满足数 据库的五个范式要求,其中用户关系通常被保存在一张表(假设命为corm)中,假设数据 库中有100万个用户数据,每个用户平均和其他任意100个用户有关联关系,这样,关系表 conn中保存的数据有1亿条。当搜索某用户的第一层关系时,使用SQL语句要从conn表的 1亿条数据中遍历出他的100个关联关系,搜索第二层关系时,他的100个关联关系每一个 都要再次从conn表的1亿条数据中遍历,依次类推下去,这是个很庞大的搜索操作。依据 本发明的方法,如图2所示网状数据结构的节点关系数据,当搜索ID为2的第一层关系时, 根据用户ID和用户基本列表索引号的一一对应关系,直接读取用户基本列表[201]的索引 号为2的位置的内容,其内容是ID为2的用户的关系列表的句柄,可以直接定位到ID为2 的用户的关系列表,在实际运算中,是个读取指针的操作,依据本技术领域常识,要比关系 型数据库中遍历1亿条数据要快的多。用户的关系列表中保存的是和其用户有关联关系的 用户ID,依次类推下去,可以根据这些ID快速定位到相应的关系列表(具体算法详见下述的具体实施方式
)。依据本技术领域的常识可以很显然的看出,本发明的方法在结构和理论 上要比在关系型数据库中搜索关系路径要快的多。2)从测试数据上分析如下本发明中的关系路径搜索方法已在申请人研发的人际关系搜索引擎中得到应用, 并进行了与关系型数据库搜索关系路径的比较测试。测试的软硬件环境是“CPU 2.8GHz、 内存2G、WindoWS Server2003操作系统、MySQL数据库、人际关系搜索引擎”;测试的数据环 境为,通过随机生成的100万个用户数据,以及每个用户和其他随机的100个用户有好友关 系;测试的操作,搜索两个用户的第一条最短关系路径。测试数据结果如下
权利要求
1.一种能体现人际关系网的网站系统,包括1)一个或多个用于保存用户资料的关系型数据库;2)一个或多个用于保存用户节点关系数据的节点关系数据区;3)用于搜索用户间关系路径的搜索模块;4)用于组成人际关系路径或人际关系网的呈现模块。
2.如权利要求1所述,一种能体现人际关系网的网站系统,其特征是包括一个或多个 用于保存用户节点关系数据的节点关系数据区。
3.如权利要求1所述,一种能体现人际关系网的网站系统,其特征是包括用于搜索用 户间关系路径的搜索模块。
4.如权利要求1所述,一种能体现人际关系网的网站系统,其特征是包括用于组成人 际关系路径或人际关系网的呈现模块。
全文摘要
本发明公开了一种能体现人际关系网的网站系统,涉及到对现有的关系型数据库中SQL语句不擅长搜索关系路径的改进。随着现在各种社交网站、社交软件及社交工具的兴起,这些大型网站通常都有数千万甚至数亿的会员量,这些会员的数据以及会员之间的关系数据通常都保存在关系型数据库中,然而,现有的关系型数据库SQL语句并不擅长于在这样复杂的关系数据中求解两个节点的关系路径。本发明采用将一般数据和节点关系数据分离,以及节点路径搜索步骤也从SQL语句中分离出来的方式,有效的提高了搜索效率,实现了一种能体现人际关系网的网站系统。
文档编号G06F17/30GK102087655SQ20091026363
公开日2011年6月8日 申请日期2009年12月8日 优先权日2009年12月8日
发明者张玉峰 申请人:张玉峰
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1