[发明专利]查找手机号归属地的方法和装置以及业务处理方法有效
申请号: | 201110452604.6 | 申请日: | 2011-12-29 |
公开(公告)号: | CN103188649A | 公开(公告)日: | 2013-07-03 |
发明(设计)人: | 钱国红 | 申请(专利权)人: | 北京新媒传信科技有限公司 |
主分类号: | H04W8/02 | 分类号: | H04W8/02 |
代理公司: | 北京市隆安律师事务所 11323 | 代理人: | 权鲜枝 |
地址: | 100089 北京市海淀区万*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 查找 手机号 属地 方法 装置 以及 业务 处理 | ||
技术领域
本发明涉及本发明涉及移动互联网领域,特别涉及一种查找手机号归属地的方法和装置以及一种业务处理方法。
背景技术
在移动互联网业务领域,用户手机号码往往是各业务的核心载体数据。在具体的业务处理中,常常需要根据用户手机号码来快速定位该用户的归属地区域,以此为基础才能完成后续的处理逻辑。常见的应用场景有:
(1)在业务系统处理手机用户的产品订购退订请求时,需先根据手机号码确定该用户归属省,进而向手机用户归属省BOSS发送订购退订请求;
(2)在SI业务系统进行短彩信下发时,需先根据接收用户手机号码确定信息接收用户归属省,进而将该短彩信发送到接收用户归属省网关,并由归属省网关经短彩信中心下发到接收用户手机上;
(3)在业务系统处理涉及手机用户的业务时,需先根据手机号码确定该手机用户的归属地区域,并以归属地区域为判断条件,将相应业务的具体处理路由到对应的内部负载系统中,以此达到快速处理海量业务请求的能力;
一般情况下,将手机号段与其归属地区域对应关系信息预设在系统中,例如号段13485740000至13485749999之间的手机号皆归属于安徽省合肥市,号段13901770000至13901779999之间的手机号皆归属于上海市。在移动互联网业务处理领域,处理的业务量非常大,并发请求非常多,对系统吞吐能力要求非常高,如何快速高效地根据手机号查询到归属地信息才是非常关键的。
目前,一般都采用直接查询数据库或采用简单缓存的方案来实现手机号归属地的查询:
直接SQL查询数据方案:该方案最为简单明了,通过构造SQL语句直接从数据库号段表中查询手机号号码所属号段对应的区域信息。但在实际应用中,号段表是动态维护的,其数据条数可能有10万条之多,通过查询数据库的方式效率非常低,且频繁访问数据库会对数据库资源造成很大的压力。
简单缓存方案:将号段信息一次性加载到内存中,但在内存中是以简单的原始结构存在(例如DataTable或IList),查询手机号归属地信息时直接从内存中采用类似Linq的方式查询。该方案不用频繁访问数据库,一定程度上性能有所提升,但在内存中从几十万条数据中查找一条数据,时间复杂度还是偏高,效率仍有局限性。
发明内容
本发明提供了一种查找手机号归属地的方法和装置以及一种业务处理方法,本发明中的方法利用号段树结构来实现快速查询手机号归属地,再根据手机号归属地进行相关业务处理,由于手机号为11位数字组成,所有树结构的深度最大为11。大部分情况下,由于号段的规则性,遍历4至7个节点即可确定手机号归属地信息,大大降低了时间复杂度。
为达到上述目的,本发明的技术方案是这样实现的:
本发明公开了一种查找手机号归属地的方法,该方法包括:
根据数据库中的号段表构建树结构,并保存在内存中;
其中,所述号段表中的每条号段信息包括起始号码、结束号码和归属区域;
所述树结构中的各节点均包括:节点对应的数字、该节点是否为叶子节点;当该节点是叶子节点时,还包括:该节点对应的归属区域;当该节点是非叶子节点时,还包括:该节点的子节点集合;
通过查询所述树结构中的各节点来查询手机号对应的归属地信息。
在上述方法中,所述根据数据库中的号段表构建树结构包括:
构建根节点集合;
遍历号段表,将号段表中的逐条号段信息添加到根节点集合中对应根节点的树结构中。
在上述方法中,所述将号段表中的逐条号段信息添加到根节点集合中对应根节点的树结构中包括:根据每条号段信息给定起始号串、结束号串及上级节点集合,并判断从所述起始号串到结束号串中的各个号串的首位数字是否为叶子节点;是则作为叶子节点添加到上级节点集合中;否则作为非叶子节点添加到上级节点集合中,并构建所述非叶子节点的子节点集合,其具体实施步骤如下:
A1、根据每条号段信息给定起始号串、结束号串及上级节点集合;
B1、判断所述起始号串和所述结束号串是否均只含一位数字;是则执行步骤C1,否则执行步骤D1;
C1、将所述起始号串和所述结束号串之间的数字均作为叶子节点添加到上级节点集合中,流程终止;
D1、判断所述起始号串与所述结束号串首位数字是否相同;是则执行步骤E1,否则执行步骤H1;
E1、判断是否所述起始号串从第二位开始均为0且所述结束号串从第2位开始均为9,是则执行步骤F1,否则执行步骤G1;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京新媒传信科技有限公司,未经北京新媒传信科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110452604.6/2.html,转载请声明来源钻瓜专利网。