用户身份识别方法、装置、电子设备及可读存储介质与流程

文档序号:15851589发布日期:2018-11-07 10:04阅读:124来源:国知局
用户身份识别方法、装置、电子设备及可读存储介质与流程
本发明实施例涉及计算机技术,尤其涉及一种用户身份识别方法、装置、电子设备及可读存储介质。
背景技术
应用程序(application,简称app)中可能涉及多种用户角色,每种用户角色分别对应多种属性信息。在app中需要通过不同的数据表表来存储以及维护这些角色的信息。现有技术中,在app中为每种角色创建一张数据表,来存储该种角色的信息。当新增角色时,需要为新增的角色重新创建新的数据表,来存储新增的角色的信息。当角色中的属性改变时,需要对数据表结构进行修改。但是,现有技术的方法会导致数据表的维护复杂度高。技术实现要素:本发明实施例提供一种用户身份识别方法、装置、电子设备及可读存储介质,用于解决现有技术中数据表的维护复杂度高的问题。本发明实施例第一方面提供一种用户身份识别方法,该方法包括:获取用户的信息,所述用户的信息分别存储在第一数据表以及第二数据表中,其中,所述第一数据表为关系型数据库中的数据表,所述第二数据表为文档型数据库中的数据表,所述第一数据库用于存储所述用户的基础信息,所述第二数据库用于存储所述用户的角色属性信息;根据所述用户的信息识别所述用户的身份。进一步的,所述基础信息包括所述用户的联系方式以及第三方应用帐号信息,所述角色属性信息用于标识所述用户对应的角色属性名称以及角色属性值;所述基础信息存储在所述第一数据表中,所述角色属性信息存储在所述第二数据表中。进一步的,所述获取用户的信息,包括:从所述第一数据表中获取所述基础信息;从所述第二数据表中获取所述角色属性信息。进一步的,所述从所述第二数据表中获取所述角色属性信息之前,还包括:根据所述用户的帐户,从第三数据表中查找所述用户所属角色,其中,所述第三数据表存储在所述关系型数据库中,其中,所述用户的帐户为所述用户登录所述应用程序的帐户。进一步的,所述从所述第二数据表中获取所述角色属性信息,包括:根据所述用户所属角色以及所述用户的帐户,从所述第二数据表中查找所述用户对应的角色属性编号和角色属性值;根据所述角色属性编号,从第四数据表中查找所述角色属性编号对应的角色属性名称,其中,所述第四数据表存储在所述关系型数据库中;根据从所述第二数据表中查找到的所述角色属性编号和角色属性值,以及从所述第四数据表中查找到的所述角色属性编号对应的角色属性名称,确定所述用户的角色属性名称以及角色属性值。本发明实施例第二方面提供一种用户身份识别装置,包括:获取模块,用于获取用户的信息,所述用户的信息分别存储在第一数据表以及第二数据表中,其中,所述第一数据表为关系型数据库中的数据表,所述第二数据表为文档型数据库中的数据表,所述第一数据库用于存储所述用户的基础信息,所述第二数据库用于存储所述用户的角色属性信息;识别模块,根据所述用户的信息识别所述用户的身份。进一步的,所述基础信息包括所述用户的联系方式以及第三方应用帐号信息,所述角色属性信息用于标识所述用户对应的角色属性名称以及角色属性值;所述基础信息存储在所述第一数据表中,所述角色属性信息存储在所述第二数据表中。进一步的,所述获取模块包括:第一获取单元,用于从所述第一数据表中获取所述基础信息;第二获取单元,用于从所述第二数据表中获取所述角色属性信息。进一步的,还包括:查找模块,用于根据所述用户的帐户,从第三数据表中查找所述用户所属角色,其中,所述第三数据表存储在所述关系型数据库中,其中,所述用户的帐户为所述用户登录所述应用程序的帐户。进一步的,所述第二获取单元具体用于:根据所述用户所属角色以及所述用户的帐户,从所述第二数据表中查找所述用户对应的角色属性编号和角色属性值;根据所述角色属性编号,从第四数据表中查找所述角色属性编号对应的角色属性名称,其中,所述第四数据表存储在所述关系型数据库中;根据从所述第二数据表中查找到的所述角色属性编号和角色属性值,以及从所述第四数据表中查找到的所述角色属性编号对应的角色属性名称,确定所述用户的角色属性名称以及角色属性值。本发明实施例第三方面提供一种电子设备,包括:存储器,用于存储程序指令;处理器,用于调用并执行所述存储器中的程序指令,执行上述第一方面所述的方法步骤。本发明实施例第四方面提供一种可读存储介质,所述可读存储介质中存储有计算机程序,当用户身份识别装置的至少一个处理器执行所述计算机程序时,用户身份识别装置执行上述第一方面所述的用户身份识别方法。本发明实施例所提供的用户身份识别方法、装置、电子设备及可读存储介质,通过将变化概率较大的角色属性信息存储在文档型关系库中,实现了角色属性信息的灵活修改和扩展,从而在用户信息的数据结构发生变化时,无需新增数据表或对数据表结构即可实现对信息的修改,从而极大地降低了数据表的维护复杂度。同时,通过将变化概率较小的基础信息存储在关系型数据表中,使得可以快速获取到基础信息。附图说明为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例提供的用户身份识别方法实施例一的流程示意图;图2为同镇用户管理模块内各角色的架构以及职能划分;图3为本发明实施例提供的用户身份识别方法实施例二的流程示意图;图4为本发明实施例提供的用户身份识别方法实施例三的流程示意图;图5为本发明实施例提供的用户身份识别装置实施例一的模块结构图;图6为本发明实施例提供的用户身份识别装置实施例二的模块结构图;图7为本发明实施例提供的用户身份识别装置实施例三的模块结构图;图8为本发明实施例提供的电子设备的实体框图。具体实施方式为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。现有技术中,在app中为每种角色创建一张数据表,来存储该种角色的信息。当新增角色时,需要为新增的角色重新创建新的数据表,来存储新增的角色的信息。当角色中的属性改变时,需要对数据表结构进行修改。这种方法会导致app内维护的数据表数量过多,并且维护复杂度高。本发明实施例基于上述问题,提出一种用户身份识别方法,通过将部分用户信息存储在文档型数据库中,使得用户的角色属性可以灵活扩展,从而无需新增数据表或对数据表结构进行修改,从而极大地降低了数据表的维护复杂度。图1为本发明实施例提供的用户身份识别方法实施例一的流程示意图,该方法的执行主体为运行app电子设备,例如手机、平板电脑等。如图1所示,该方法包括:s101、获取用户的信息,该用户的信息分别存储在第一数据表以及第二数据表中,其中,该第一数据表为关系型数据库中的数据表,该第二数据表为文档型数据库中的数据表。其中,上述第一数据库用于存储上述用户的基础信息,上述第二数据库用于存储上述用户的角色属性信息。可选的,由运行app的电子设备从app的服务器获取上述用户的信息。具体的,关系型数据库为传统数据库,一般由数据库、表和记录三个层次的概念组成。而文档型数据库由数据库、集合和文档对象三个层次的概念组成。在文档型数据库中,数据按照文档的结构进行存储,因此相比于关系型数据库,可以更灵活的获取以及扩展数据。示例性的,上述关系型数据库可以为mysql数据库,上述文档型数据库可以为mongo数据库。对于一个app来说,很多功能模块下可能涉及多种角色。例如,某个app中提供一个同镇用户管理模块,该模块涉及多种角色,包括:总代、分代、站长和直营,每种角色负责特定的功能,因此每种角色对应多个属性。图2为同镇用户管理模块内各角色的架构以及职能划分。为使本领域技术人员更好的理解本发明实施例的方案,本发明以下实施例中都以上述的同镇用户管理模块为例进行说明。但是,需要说明的是,这并不能作为对本发明实施例的限制,本发明实施例的方案同样可以应用在其他进行用户信息存储的模块中。针对上述同镇用户管理模块,如果一个特定的用户使用同镇用户管理功能,则该用户会用于一个或多个该模块的角色,同时,该用户还具有一些基础的信息,例如姓名、电话等。以基础的信息为例,其结构变化的概率较低。而对于用户对应角色的属性来说,出于业务的需要,其结构变化的概率较高。因此,在本实施例中,可以使用第一数据表来存储结构变化的概率较低的信息,使用第二数据表来存储结构变化的概率较高的信息,从高灵活方便的对数据进行扩展或修改等。表1为第一数据表的示例,表2为第二数据表的示例。表1id用户帐户电话微信号qq号11231231213one12121212124564564545two343434343表2用户帐户角色ext123站长ext[{1:1},{2:0},{3:12122334312}]456总代ext[{4:2121212},{5:3434343},{6:23232323}]其中,上述ext是指用户对应的角色属性信息。以上述表2所示的的角色属性信息为例,当增加一个角色属性时,无需对数据表结构做任何修改,而仅需要对ext字段进行修改即可。s102、根据上述用户的信息识别上述用户的身份。当运行app的电子设备从服务器获取到用户的信息后,即可识别出用户的身份。在app开发和运行过程中,业务需要可能会发生变化,例如app开发过程中,业务需求变更需要为某种用户角色删除或者增加一种属性值。因此,用户的角色属性信息的设置可能会发生变化。而用户的基础信息的设置则比较固定。本实施例中,通过将变化概率较大的角色属性信息存储在文档型关系库中,实现了角色属性信息的灵活修改和扩展,从而在用户信息的数据结构发生变化时,无需新增数据表或对数据表结构即可实现对信息的修改,从而极大地降低了数据表的维护复杂度。同时,通过将变化概率较小的基础信息存储在关系型数据表中,使得可以快速获取到基础信息。在一种可选的实施方式中,上述基础信息包括用户的联系方式以及第三方应用帐号信息,上述角色属性信息用于标识用户对应的角色属性名称以及角色属性值。其中,上述基础信息存储在上述第一数据表中,上述角色属性信息存储在上述第二数据表中具体的,对于使用app的用户来说,有一部分信息为app的各功能模块可能都会使用基础信息,包括但不限于用户的联系方式、用户登录其他应用的帐号信息等。这些基础信息的结构变化的概率较小,因此,可以保存在mysql等传统数据库中,即上述第一数据表中。而针对例如上述的同镇用户管理功能模块,其中涉及多种角色,每种角色有多种属性,每种属性对应特定的角色属性名称。当某个用户被赋予一个角色之后,需要为该用户在该角色下填充角色属性值。由于app中业务需求不断变化,因此角色属性信息的结构变化的概率较大,因此,可以将其角色属性信息保存在上述第二数据表中以进行灵活修改和扩展等。示例性的,某个用户a被赋予“站长”的角色,“站长”这个角色的属性名称有“站长状态”和“所属地域”,则用户a的“站长”角色的角色属性信息可以有:站长状态:1所属地域:镇1其中,“站长状态”和“所属地域”为角色属性名称,“1”和“镇1”为角色属性值。本实施例中,将包括联系方式以及第三方应用帐号信息等的基础信息保存在第一数据表中,将角色属性信息保存在第二数据表中,既能够保证快速获取到变化概率较小的基础信息,同时,又能够实现角色属性信息的灵活修改和扩展。在上述实施例的基础上,本实施例涉及获取用户的信息的具体方法。图3为本发明实施例提供的用户身份识别方法实施例二的流程示意图,如图3所示,该方法包括:s301、从上述第一数据表中获取上述基础信息。具体的,参照上述表1,第一数据表中包括用户帐户、电话等字段,其中,用户帐户可以唯一标识一个用户。使用app的用户可以通过唯一的帐号登录到app的客户端。app的客户端将用户的帐号发送给服务器,服务器即可根据用户的帐号查找出第一数据表中的一行记录,即该用户的帐号对应的基础信息,服务器将该行记录中的基本信息发送给app的客户端,app的客户端即获取到用户的基础信息。s302、从上述第二数据表中获取上述角色属性信息。具体的,参照上述表2,第二数据表中包括用户帐户、角色以及角色属性信息。当用户一个特定角色在同镇用户管理功能模块中进行操作之前,客户端也可以先将用户的帐号发送给服务器,由服务器根据用户的帐号查找到用户的角色,以及角色属性信息。s303、根据上述用户的信息识别上述用户的身份。该步骤的执行过程上述步骤s202相同,可以参照上述步骤s202,此处不再赘述。本实施例中,从第一数据表中获取基础信息,从第二数据表中获取角色属性信息,既能够保证快速获取到变化概率较小的基础信息,同时,又能够保证正确获取到变化概率较大的角色属性信息。在上述实施例的基础上,本实施例涉及获取角色属性信息的具体方法。图4为本发明实施例提供的用户身份识别方法实施例三的流程示意图,如图4所示,该方法包括:s401、从上述第一数据表中获取上述基础信息。该步骤的执行过程上述步骤s301相同,可以参照上述步骤s301,此处不再赘述。s402、根据用户的帐户,从第三数据表中查找用户所属角色,其中,该第三数据表存储在上述关系型数据库中,其中,该用户的帐户为用户登录应用程序的帐户。可选的,上述第三数据表中保存了用户的帐户与用户所属角色的对应关系。表3为第三数据表的示例。表3id用户帐户角色1123站长2456总代示例性的,假设要获取“123”这个帐号的角色属性信息,则首先需要在上述表3中根据“123”这个帐号,查找与其对应的角色,即“站长”角色。进而,在下述步骤中,再基于该角色进一步查找用户的角色属性信息。本步骤中,在查找用户的角色属性信息之前,首先从存储在关系型数据库中的第三数据表中查找出用户所属角色,从而既实现了快速获取到角色信息,并且能够使得基于角色信息获取到正确的角色属性信息。s403、根据上述用户所属角色以及上述用户的帐户,从上述第二数据表中查找用户对应的角色属性编号和角色属性值。s404、根据上述角色属性编号,从第四数据表中查找上述角色属性编号对应的角色属性名称,其中,该第四数据表存储在上述关系型数据库中。s405、根据从上述第二数据表中查找到的上述角色属性编号和角色属性值,以及从上述第四数据表中查找到的上述角色属性编号对应的角色属性名称,确定上述用户的角色属性名称以及角色属性值。具体的,能够被app的客户端使用并用来识别用户身份的的角色属性信息应该为前述的角色属性名称以及角色属性值。而在实际实施过程中,如果在第二数据表中直接存储角色属性名称,可能会存在存储空间占用过多、角色属性定义混乱无法统一管理等问题,因此,本实施例中,为每个角色属性名称都定义一个编号,并创建上述的第四数据表,用来存储角色属性编号和角色属性名称的对应关系,并且,参照上述表2,在第二数据表中仅使用角色属性编号来区分属性。进而,当根据用户所属角色以及用户的帐户,从第二数据表中查找到用户的角色属性编号和角色属性值之后,再通过查找第四数据表,查找角色属性编号对应的角色属性名称表4为第四数据表的示例。表4角色属性编号所属角色角色属性名称角色属性描述1站长state站长状态2站长decorate是否装修过3站长code所属地域4总代province管理省5总代city管理市6总代locals管理的地域可选的,为使角色信息保存时可以占用更少存储空间,可以进一步新建一个角色表,为每个角色分配一个编号,并在上述表4中第二列使用角色编号来表示角色即可,在具体使用时,再通过查找角色表查找角色编号所代表的角色。当通过查找上述第四数据表查找到角色属性编号对应的角色属性名称后,可选的,将从第二数据表中查找到角色属性编号替换为对应的角色属性名称,即可得到角色属性名称及其对应的角色属性值,从而得到用户的角色属性名称以及角色属性值。以下以查找“123”这个帐号的角色属性信息为例来说明获取角色属性信息的完整过程。当用户以“123”这个帐号登录app并进入同镇用户管理功能模块之后,客户端向服务器发送“123”这个帐号,服务器首先根据“123”这个帐号查找上述表3,即查找到“123”这个帐号的用户的角色为“站长”。进而,服务器再根据“123”帐号以及“站长”角色查找上述表2,即查找到“123”帐号的角色属性信息为“{1:1},{2:0},{3:12122334312}”。进而,服务器再根据1、2、3这个三个角色属性编号,从上述表4中查找对应的角色属性名称,进而,对从上述表2查找到的角色属性中的角色属性编号进行替换,从而得到“123”帐号最终的角色属性信息为:state:1decorate:0code:12122334312进而,服务器可以将上述信息发送给客户端,由客户端根据这些角色属性信息对用户进行身份识别。本实施例中,将角色属性编号和角色属性名称的对应关系存储在第四数据表中,能够极大的降低用户信息的存储空间占用,并且,实现了使用统一的数据表对角色属性信息进行统一管理,提升了app信息管理的可靠性。图5为本发明实施例提供的用户身份识别装置实施例一的模块结构图,如图5所示,该装置包括:获取模块501,用于获取用户的信息,所述用户的信息分别存储在第一数据表以及第二数据表中,其中,所述第一数据表为关系型数据库中的数据表,所述第二数据表为文档型数据库中的数据表,所述第一数据库用于存储所述用户的基础信息,所述第二数据库用于存储所述用户的角色属性信息。识别模块502,用于根据所述用户的信息识别所述用户的身份。该装置中,通过将变化概率较大的角色属性信息存储在文档型关系库中,实现了角色属性信息的灵活修改和扩展,从而在用户信息的数据结构发生变化时,无需新增数据表或对数据表结构即可实现对信息的修改,从而极大地降低了数据表的维护复杂度。同时,通过将变化概率较小的基础信息存储在关系型数据表中,使得可以快速获取到基础信息。另一实施例中,所述基础信息包括所述用户的联系方式以及第三方应用帐号信息,所述角色属性信息用于标识所述用户对应的角色属性名称以及角色属性值。所述基础信息存储在所述第一数据表中,所述角色属性信息存储在所述第二数据表中。该装置中,将包括联系方式以及第三方应用帐号信息等的基础信息保存在第一数据表中,将角色属性信息保存在第二数据表中,既能够保证快速获取到变化概率较小的基础信息,同时,又能够实现角色属性信息的灵活修改和扩展。图6为本发明实施例提供的用户身份识别装置实施例二的模块结构图,如图6所示,该装置包括:获取模块501,用于获取用户的信息,所述用户的信息分别存储在第一数据表以及第二数据表中,其中,所述第一数据表为关系型数据库中的数据表,所述第二数据表为文档型数据库中的数据表。识别模块502,用于根据所述用户的信息识别所述用户的身份。获取模块501包括:第一获取单元5011,用于从所述第一数据表中获取所述基础信息。第二获取单元5012,用于从所述第二数据表中获取所述角色属性信息。该装置中,从第一数据表中获取基础信息,从第二数据表中获取角色属性信息,既能够保证快速获取到变化概率较小的基础信息,同时,又能够保证正确获取到变化概率较大的角色属性信息。图7为本发明实施例提供的用户身份识别装置实施例三的模块结构图,如图7所示,该装置包括:获取模块501,用于获取用户的信息,所述用户的信息分别存储在第一数据表以及第二数据表中,其中,所述第一数据表为关系型数据库中的数据表,所述第二数据表为文档型数据库中的数据表。识别模块502,用于根据所述用户的信息识别所述用户的身份。获取模块501包括:第一获取单元5011,用于从所述第一数据表中获取所述基础信息。第二获取单元5012,用于从所述第二数据表中获取所述角色属性信息。还包括:查找模块503,用于根据所述用户的帐户,从第三数据表中查找所述用户所属角色,其中,所述第三数据表存储在所述关系型数据库中,其中,所述用户的帐户为所述用户登录所述应用程序的帐户。该装置中,在查找用户的角色属性信息之前,首先从存储在关系型数据库中的第三数据表中查找出用户所属角色,从而既实现了快速获取到角色信息,并且能够使得基于角色信息获取到正确的角色属性信息。另一实施例中,第二获取单元5012具体用于:根据所述用户所属角色以及所述用户的帐户,从所述第二数据表中查找所述用户对应的角色属性编号和角色属性值;根据所述角色属性编号,从第四数据表中查找所述角色属性编号对应的角色属性名称,其中,所述第四数据表存储在所述关系型数据库中;根据从所述第二数据表中查找到的所述角色属性编号和角色属性值,以及从所述第四数据表中查找到的所述角色属性编号对应的角色属性名称,确定所述用户的角色属性名称以及角色属性值。该装置中,将角色属性编号和角色属性名称的对应关系存储在第四数据表中,能够极大的降低用户信息的存储空间占用,并且,实现了使用统一的数据表对角色属性信息进行统一管理,提升了app信息管理的可靠性。图8为本发明实施例提供的电子设备的实体框图,如图8所示,该电子设备包括:存储器801,用于存储程序指令。处理器802,用于调用并执行存储器801中的程序指令,执行上述第一方面所述的方法步骤。本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1