一种基于元数据表的多租户数据处理方法及装置与流程

文档序号:27513472发布日期:2021-11-22 17:38阅读:310来源:国知局
1.本发明涉及计算机
技术领域
:,尤其涉及一种基于元数据表的多租户数据处理方法及装置。
背景技术
::2.开发特定领域的应用软件中,经常需要针对不同租户的数据进行存储,在数据存储时,需要区分不同的租户,且不同的租户都有自己的个性化属性的存储需求。3.现有技术中,多租户技术在数据存储方面有一个租户共享物理表的方案,在该方案中所有租户都使用一张共享物理表中,然后通过在表中增加一个字段(通常就是租户id)来区分不同租户,但是由于不同租户之间的业务需求不一,当租户需要添加自定义字段时,需要在共享物理表中添加列,对于某租户而言,其他租户添加的列对该租户为无用列,但还是需要在共享物理表中存在,但当租户数量较大时,需要在共享物理表中增加大量列,这就导致共享物理表中存在大量的空值,数据稀疏、十分浪费空间。技术实现要素:4.本发明实施例提供一种元数据表的多租户数据处理方法及装置,能解决在现有技术中在进行各租户的个性化字段扩展时,导致数据稀疏,浪费存储空间的问题。5.本发明一实施例提供了一种基于元数据表的多租户数据处理方法,包括:6.接收字段新增请求;其中,所述字段新增请求包括:租户id、新增字段名称、新增字段值以及新增字段所归属的租户表的租户表名;其中,所述租户表用于存储各新增字段的新增字段名称;7.判断在接收所述字段新增请求前,是否已接收过租户id相同且租户表名相同的已接收字段新增请求;若否,则将预设共享物理表中的初始映射字段作为所述字段新增请求所对应的映射字段;若是,则将前一所述已接收字段新增请求所对应的映射字段的下一映射字段作为所述字段新增请求所对应的映射字段;其中,所述预设共享物理表用于存储各个租户的新增字段的新增字段值,所述预设共享物理表包括若干映射字段;8.将所述租户id、所述新增字段名称、所述租户表名以及所述字段新增请求所对应的映射字段的字段名称以及所述预设共享物理表的表名存储至预设的元数据表中;9.根据所述字段新增请求所对应的映射字段的字段名称,将所述新增字段值存储至所述预设共享物理表中。10.进一步的,所述元数据表包括:第一元数据表以及第二元数据表;11.所述将所述租户id、所述新增字段名称、所述租户表名以及所述字段新增请求所对应的映射字段的字段名称以及所述预设共享物理表的表名存储至预设的元数据表中,具体包括:12.将所述租户id、所述租户表名以及所述预设共享物理表的表名作为一数据组存储至所述第一元数据表,并生成所述数据组对应的主键id;13.将所述租户id、所述主键id、所述字段新增请求所对应的映射字段的字段名称以及所述新增字段名称存储至所述第二元数据表。14.进一步的,在将所述租户id、所述新增字段名称、所述租户表名以及所述字段新增请求所对应的映射字段的字段名称以及所述预设共享物理表的表名存储至预设的元数据表中之前,还包括:15.根据预设的权限控制信息对当前租户的租户id进行权限校验,判断当前租户是否具备所述新增字段的新增权限;16.若是,则根据预设的格式校验信息对所述新增字段名称进行格式校验,在格式校验通过时,所述权限控制信息以及格式校验信息存储至所述第二元数据表中并执行后续步骤;在格式校验不通过时,反馈新增失败信息并停止执行后续步骤;17.若否,则反馈新增失败信息并停止执行后续步骤;18.其中,所述权限控制信息包括:可新增所述新增字段的租户id、可删除所述新增字段的租户id、可修改所述新增字段的租户id以及可查询所述新增字段的租户id;所述格式校验信息包括:所述新增字段所需满足的数据类型信息、数据长度限制信息以及正则表达式信息。19.进一步的,还包括:接收字段删除请求;其中,所述字段删除请求包括:待删除字段所对应的第二租户id、待删除字段的字段名称、以及待删除字段所归属的第二租户表的第二租户表名;20.根据第二租户id以及第二租户表名在所述第一元数据表中查找对应的数据组,并根据所查找到的数据组确定对应的第二主键id;21.将所述第二主键id、第二租户id以及待删除字段的字段名称与所述第二元数据表中所存储的数据进行匹配,提取待删除字段所对应的映射字段;22.根据所述待删除字段所对应的映射字段,确定所述待删除字段的字段值在所述预设共享物理表中的存储位置,继而将所确定的存储位置处的字段值删除。23.进一步的,在将所述第二主键id、第二租户id以及待删除字段的字段名称与所述第二元数据表中所存储的数据进行匹配,提取待删除字段所对应的映射字段之前,还包括:24.将所述第二主键id、第二租户id以及待删除字段的字段名称与所述第二元数据表中所存储的数据进行匹配,提取待删除字段所对应的权限控制信息;25.根据所述待删除字段所对应的权限控制信息,提取可删除所述待删除字段的租户id;26.根据当前租户的租户id以及可删除所述待删除字段的租户id,判定当前租户是否具备删除所述待删除字段的权限;27.若是,则执行后续步骤;若否,则反馈删除失败信息并停止执行后续步骤。28.进一步的,还包括:接收字段修改请求;其中,所述字段修改请求包括:待修改字段所对应的第三租户id、待修改字段的字段名称、修改后的字段值、以及待修改字段所归属的第三租户表的第三租户表名;29.根据第三租户id以及第三租户表名在所述第一元数据表中查找对应的数据组,并根据所查找到的数据组确定对应的第三主键id;30.将所述第三主键id、第三租户id以及待修改字段的字段名称与所述第二元数据表中所存储的数据进行匹配,提取待修改字段所对应的映射字段;31.根据所述待修改字段所对应的映射字段,确定所述待修改字段的原始字段值在所述预设共享物理表中的存储位置,根据所确定的存储位置删除所述待修改字段的原始字段值并将修改后的字段值存储至所述预设共享物理表中。32.进一步的,在将所述第三主键id、第三租户id以及待修改字段的字段名称与所述第二元数据表中所存储的数据进行匹配,提取待修改字段所对应的映射字段之前,还包括:33.将所述第三主键id、第三租户id以及待修改字段的字段名称与所述第二元数据表中所存储的数据进行匹配,提取待修改字段所对应的权限控制信息;34.根据所述待修改字段所对应的权限控制信息,提取可修改所述待修改字段的租户id;35.根据当前租户的租户id以及可修改所述待修改字段的租户id,判定当前租户是否具备修改所述待修改字段的权限;36.若是,则执行后续步骤;若否,则反馈修改失败信息并停止执行后续步骤。37.进一步的,还包括:接收字段查询请求;其中,所述字段查询请求包括:待查询字段所对应的第四租户id、待查询字段的字段名称、以及待查询字段所归属的第四租户表的第四租户表名;38.根据第四租户id以及第四租户表名在所述第一元数据表中查找对应的数据组,并根据所查找到的数据组确定对应的第四主键id;39.将所述第四主键id、第四租户id以及待查询字段的字段名称与所述第二元数据表中所存储的数据进行匹配,提取待查询字段所对应的映射字段;40.根据所述待查询字段所对应的映射字段,确定所述待查询字段的字段值在所述预设共享物理表中的存储位置,根据所确定的存储位置将所述待查询字段的字段值进行提取并显示。41.进一步的,在将所述第四主键id、第四租户id以及待查询字段的字段名称与所述第二元数据表中所存储的数据进行匹配,提取待查询字段所对应的映射字段之前,还包括:42.将所述第四主键id、第四租户id以及待查询字段的字段名称与所述第二元数据表中所存储的数据进行匹配,提取待查询字段所对应的权限控制信息;43.根据所述待查询字段所对应的权限控制信息,提取可查询所述待查询字段的租户id;44.根据当前租户的租户id以及可查询所述待查询字段的租户id,判定当前租户是否具备查询所述待查询字段的权限;45.若是,则执行后续步骤;若否,则反馈查询失败信息并停止执行后续步骤。46.在上述方法项实施例的基础上,本发明对应提供了一装置项实施例;47.本发明一实施例提供了一种基于元数据表的多租户数据处理装置,包括:字段新增请求接收模块、映射字段确定模块、元数据表数据存储模块以及字段值存储模块;48.所述字段新增请求接收模块,用于接收字段新增请求;其中,所述字段新增请求包括:租户id、新增字段名称、新增字段值以及新增字段所归属的租户表的租户表名;其中,所述租户表用于存储各新增字段的新增字段名称;49.所述映射字段确定模块,用于判断在接收所述字段新增请求前,是否已接收过租户id相同且租户表名相同的已接收字段新增请求;若否,则将预设共享物理表中的初始映射字段作为所述字段新增请求所对应的映射字段;若是,则将前一所述已接收字段新增请求所对应的映射字段的下一映射字段作为所述字段新增请求所对应的映射字段;其中,所述预设共享物理表用于存储各个租户的新增字段的新增字段值,所述预设共享物理表包括若干映射字段;50.所述元数据表数据存储模块,用于将所述租户id、所述新增字段名称、所述租户表名以及所述字段新增请求所对应的映射字段的字段名称以及所述预设共享物理表的表名存储至预设的元数据表中;51.所述字段值存储模块,用于根据所述字段新增请求所对应的映射字段的字段名称,将所述新增字段值存储至所述预设共享物理表中。52.通过实施本发明实施例具有如下有益效果:53.本发明一实施例提供了一种基于元数据表的多租户数据处理方法及装置,所述方法在接收字段新增请求后,确定新增字段在预设共享物理表中的映射字段,然后将新增字段的新增字段名称以及对应映射字段存储在元数据表中,将新增字段的新增字段值根据映射字段存在预设共享物理表中。这样当不同租户新增不同属性的字段时,无需在共享物理表新增对应的字段列,共享物理表保持原有的映射字段不变,只需将租户新增的字段与共享物理表中的映射字段,建立映射关系后,即可将新增字段值存储值共享物理表中,避免了共享物理表的数据稀疏,以及存储空间的浪费。附图说明54.图1是本发明一实施例提供的一种基于元数据表的多租户数据处理方法的流程示意图。55.图2是本发明一实施例提供的一种基于元数据表的多租户数据处理装置的结构示意图。具体实施方式56.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。57.如图1所示,本发明一实施例提供了一种基于元数据表的多租户数据处理方法,至少包括如下步骤:58.步骤s101:接收字段新增请求;其中,所述字段新增请求包括:租户id、新增字段名称、新增字段值以及新增字段所归属的租户表的租户表名;其中,所述租户表用于存储各新增字段的新增字段名称。59.步骤s102:判断在接收所述字段新增请求前,是否已接收过租户id相同且租户表名相同的已接收字段新增请求;若否,则将预设共享物理表中的初始映射字段作为所述字段新增请求所对应的映射字段;若是,则将前一所述已接收字段新增请求所对应的映射字段的下一映射字段作为所述字段新增请求所对应的映射字段;其中,所述预设共享物理表用于存储各个租户的新增字段的新增字段值,所述预设共享物理表包括若干映射字段。60.步骤s103:将所述租户id、所述新增字段名称、所述租户表名以及所述字段新增请求所对应的映射字段的字段名称以及所述预设共享物理表的表名存储至预设的元数据表中。61.步骤s104:根据所述字段新增请求所对应的映射字段的字段名称,将所述新增字段值存储至所述预设共享物理表中。62.对于步骤s101、首先对租户表进行说明,在本发明中每一个租户均对应有一张各自的租户表,该租户表存储的是租户的各个属性字段的字段名称,但是不存储具体的字段值,租户通过租户表可获悉自身所包含的所有属性字段;如表1所示,表1是一租户的租户表:63.表名user_info字段1height字段2weight字段3age字段4gender64.表165.租户在发起字段新增请求时,提前设定新增字段所属的租户id、新增字段名称、字段值以及新增字段所归属的租户表的表名,开始进行字段新增。例如一字段新增请求的租户id为“100”、新增字段名称为“height”、新增字段值为“180”、所归属的租户表的表名为“user_info”。66.对于步骤s102、首先对预设共享物理表进行说明,共享物理表是各个不同租户的属性字段的字段值存储的表,各个租户的各字段的字段值均存储在上述共享物理表中;67.在现有技术中,各个不同租户的各字段名称以及字段值均存储在共享物理表中,这样导致共享物理表出现数据稀疏的问题,例如表2所示的一现有技术共享物理表:68.租户id租户表名年龄员工人数100user_info18120goods_info1269.表270.租户a需要存储员工人数字段,但是租户b不需要该字段,租户b需要存储年龄字段,但是租户a不需要;此时在共享物理表中会同时增加“员工人数字段”以及一个“年龄”字段,但是如表2所示,对于租户a来说“年龄”字段处是没有数值的,对于租户b来说“员工人数”字段处是没有数值的,这样就导致了共享物理表中的数据稀疏、浪费存储空间的问题。71.为解决上述问题,在本发明中在预设共享物理表中设置通用的映射字段,不再针对每个租户设置单独的字段,示意性的,在本发明中预设共享物理表的表结构如表3所示:72.租户id租户表名映射字段1映射字段2……映射字段nꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ73.表374.在接收字段新增请求后,首先根据租户id和租户表名,确定是否之前接收过租户id和租户表名均相同的字段新增请求,如果是,说明在接收当前的字段新增请求之前,预设共享物理表中相同租户id相同租户表名这一行,所对应的映射字段已经有部分被使用,此时将前一新增请求所对应映射字段的下一映射字段作为当前字段新增请求所对应的映射字段;如果不是,说明预设共享物理表中,还未存储与当前字段新增请求中的租户id、租户表名均相同的数据,则可以将预设共享物理表中的初始映射字段,作为当前字段新增请求的字段新增请求所对应的映射字段。75.示意性的,假设在t1时刻接收到了一个字段新增请求,该字段新增请求的租户id为“100”、新增字段名称为“height”、新增字段值为“180”、所归属的租户表的表名为“user_info”,且在此之前不存在租户id为“100”租户表的表名为“user_info”的字段新增请求,那么此时将预设共享物理表中的初始字段“映射字段1”,作为新增字段的映射字段;76.在t2时刻接收到了一个字段新增请求,该字段新增请求的租户id为“100”、新增字段名称为“age”、新增字段值为“18”、所归属的租户表的表名为“user_info”,由于在t1时刻已经接受到了一个租户id为“100”租户表的表名为“user_info”的字段新增请求,因此将t1时刻的字段新增请求所对应的映射字段“映射字段1”的下一映射字段即“映射字段2”作为t2时刻的字段新增请求所对应的映射字段;77.假设在t3时刻接收到了一个字段新增请求,该字段新增请求的租户id为“100”、新增字段名称为“weight”、新增字段值为“120”、所归属的租户表的表名为“user_info”,由于t1时刻和t2时刻都已经接受到了一个租户id为“100”租户表的表名为“user_info”的字段新增请求,则此时选取t3时刻的前一个租户id为“100”租户表的表名为“user_info”的字段新增请求所对应的映射字段,即t2时刻的字段新增请求所对应的映射字段“映射字段2”的下一映射字段即“映射字段3”作为t3时刻的字段新增请求所对应的映射字段;78.假设在t4时刻接收到了一个字段新增请求,该字段新增请求的租户id为“120”、新增字段名称为“staffs_number”、新增字段值为“12”、所归属的租户表的表名为“goods_info”,在此之前不存在租户id为“120”租户表的表名为“goods_info”的字段新增请求,那么此时将预设共享物理表中的初始字段“映射字段1”,作为新增字段的映射字段;79.对于步骤s103、在一个优选的实施例中,所述元数据表包括:第一元数据表以及第二元数据表;所述将所述租户id、所述新增字段名称、所述租户表名以及所述字段新增请求所对应的映射字段的字段名称以及所述预设共享物理表的表名存储至预设的元数据表中,具体包括:将所述租户id、所述租户表名以及所述预设共享物理表的表名作为一数据组存储至所述第一元数据表,并生成所述数据组对应的主键id;将所述租户id、所述主键id、所述字段新增请求所对应的映射字段的字段名称以及所述新增字段名称存储至所述第二元数据表。80.具体的,假设一字段新增请求的租户id为“100”、新增字段名称为“height”、新增字段值为“180”、所归属的租户表的表名为“user_info”共享物理表的表名为“universal_data_table”,那么存入第一元数据表后,所形成的第一元数据表如表4所示:81.主键id租户id租户表名预设共享物理表的表名1auser_infouniversal_data_tableꢀꢀꢀꢀ82.表483.需要说明的是主键id可随机生成,租户id相同、租户表名相同以及共享物理表的表名相同的数据组的主键id也是相同的。84.依旧以上述为例,字段新增请求的租户id为“100”、新增字段名称为“height”、新增字段值为“180”、所归属的租户表的表名为“user_info”,其在共享物理表中映射字段为“映射字段1”,在第一元数据表中的主键id为1则存入第二元数据表后,所形成的元数据表的如表5所示:85.租户id主键id字段名映射字段的字段名1001height映射字段1ꢀꢀꢀꢀ86.表587.对于步骤s104、示意性的,在前述步骤中,已经确定字段新增请求的租户id为“100”、新增字段名称为“height”、新增字段值为“180”、所归属的租户表的表名为“user_info”,其在预设共享物理表中所对应的映射字段为“映射字段1”;88.字段新增请求的租户id为“100”、新增字段名称为“age”、新增字段值为“18”、所归属的租户表的表名为“user_info”,其在预设共享物理表中所对应的映射字段为“映射字段2”;89.字段新增请求的租户id为“100”、新增字段名称为“weight”、新增字段值为“120”、所归属的租户表的表名为“user_info”,其在预设共享物理表中所对应的映射字段为“映射字段3”;90.字段新增请求的租户id为“120”、新增字段名称为“staffs_number”、新增字段值为“12”、所归属的租户表的表名为“goods_info”,其在预设共享物理表中所对应的映射字段为“映射字段1”。91.那么将上述各个字段新增请求的新增字段值存储值预设共享物理表后,所形成的预设共享物理表如表6所示:92.租户id租户表名映射字段1映射字段2映射字段2100user_info18018120120goods_info12ꢀꢀ93.表694.从表6可以看出,租户“100”的“height”字段的字段值与租户“120”的“staffs_number”字段的字段值,能够共同存储在预设共享物理表的“映射字段1”下,这样解决了现有预设共享物理表存在的数据稀疏以及存储空间浪费的问题。95.在一个优选的实施例中,在将所述租户id、所述新增字段名称、所述租户表名以及所述字段新增请求所对应的映射字段的字段名称以及所述预设共享物理表的表名存储至预设的元数据表中之前,还包括:96.根据预设的权限控制信息对当前租户的租户id进行权限校验,判断当前租户是否具备所述新增字段的新增权限;若是,则根据预设的格式校验信息对所述新增字段名称进行格式校验,在格式校验通过时,将所述权限控制信息以及格式校验信息存储至所述第二元数据表中并执行后续步骤;在格式校验不通过时,反馈新增失败信息并停止执行后续步骤;若否,则反馈新增失败信息并停止执行后续步骤;其中,所述权限控制信息包括:可新增所述新增字段的租户id、可删除所述新增字段的租户id、可修改所述新增字段的租户id以及可查询所述新增字段的租户id;所述格式校验信息包括:所述新增字段所需满足的数据类型信息、数据长度限制信息以及正则表达式信息。97.在这一实施例中,在字段新增的过程中还进行字段级的权限控制,以及字段级的格式校验。例如当前进行字段新增操作的租户(上述当前租户)的id为120,其发起了一个字段新增请求,该字段新增请求中所包含的租户id为“100”、新增字段名称为“height”、新增字段值为“180”、所归属的租户表的表名为“user_info”,若此时的字段“height”的权限控制信息中的可新增“height”字段的租户id为“110”,那么此时当前租户“120”就无法执行“height”字段的新增操作,此时系统会反馈新增失败信息例如是“无新增权限”的提示信息至租户,并停止新增操作;若,进行字段新增操作的租户(上述当前租户)的id为110,那么此时则,对新增字段名称即“height”根据预设的校验信息进行校验,上述校验信息包括:数据类型信息例如为“string”、数据长度限制信息例如为“32”以及正则表达式例如为“^[a‑za‑z]+$”,即当字段名称“height”的数据类型为“string”,数据长度小于“32”且满足正则表达式“^[a‑za‑z]+$”时,即可通过验证,然后将权限控制信息和格式校验信息存储至第二元数据表,并正常执行后续操作,若格式校验通过,则反馈新增失败信息例如是“字段格式错误”的提示信息至租户,并停止后续操作。[0098]示意性的,具有权限校验信息和格式校验信息的第二元数据表的示意如表7所示:[0099][0100]表7[0101]表7中的,通过这一实施例可以在字段新增进行权限以及数据格式的字段级校验。[0102]在一个优选的实施例中,还包括:接收字段删除请求;其中,所述字段删除请求包括:待删除字段所对应的第二租户id、待删除字段的字段名称、以及待删除字段所归属的第二租户表的第二租户表名;根据第二租户id以及第二租户表名在所述第一元数据表中查找对应的数据组,并根据所查找到的数据组确定对应的第二主键id;将所述第二主键id、第二租户id以及待删除字段的字段名称与所述第二元数据表中所存储的数据进行匹配,提取待删除字段所对应的映射字段;根据所述待删除字段所对应的映射字段,确定所述待删除字段的字段值在所述预设共享物理表中的存储位置,继而将所确定的存储位置处的字段值删除。通过这一实施例,完成字段删除的操作。[0103]同时,在字段删除的过程中可进行权限控制,在一优选的实施例中,在将所述第二主键id、第二租户id以及待删除字段的字段名称与所述第二元数据表中所存储的数据进行匹配,提取待删除字段所对应的映射字段之前,还包括:[0104]将所述第二主键id、第二租户id以及待删除字段的字段名称与所述第二元数据表中所存储的数据进行匹配,提取待删除字段所对应的权限控制信息;根据所述待删除字段所对应的权限控制信息,提取可删除所述待删除字段的租户id;根据当前租户的租户id以及可删除所述待删除字段的租户id,判定当前租户是否具备删除所述待删除字段的权限;若是,则执行后续步骤;若否,则反馈删除失败信息并停止执行后续步骤。在这一实施例中,在进行字段删除时提取可删除所述待删除字段的租户id,例如从表7中提取的“允许删除租户id”中对应的租户id,即可判定当前租户是否具备删除待删除字段的权限。[0105]在一个优选的实施例中,还包括:接收字段修改请求;其中,所述字段修改请求包括:待修改字段所对应的第三租户id、待修改字段的字段名称、修改后的字段值、以及待修改字段所归属的第三租户表的第三租户表名;根据第三租户id以及第三租户表名在所述第一元数据表中查找对应的数据组,并根据所查找到的数据组确定对应的第三主键id;将所述第三主键id、第三租户id以及待修改字段的字段名称与所述第二元数据表中所存储的数据进行匹配,提取待修改字段所对应的映射字段;根据所述待修改字段所对应的映射字段,确定所述待修改字段的原始字段值在所述预设共享物理表中的存储位置,根据所确定的存储位置删除所述待修改字段的原始字段值并将修改后的字段值存储至所述预设共享物理表中。通过这一实施例,完成字段修改的操作。[0106]同时,在字段修改的过程中可进行权限控制,在一优选的实施例中,在将所述第三主键id、第三租户id以及待修改字段的字段名称与所述第二元数据表中所存储的数据进行匹配,提取待修改字段所对应的映射字段之前,还包括:[0107]将所述第三主键id、第三租户id以及待修改字段的字段名称与所述第二元数据表中所存储的数据进行匹配,提取待修改字段所对应的权限控制信息;根据所述待修改字段所对应的权限控制信息,提取可修改所述待修改字段的租户id;根据当前租户的租户id以及可修改所述待修改字段的租户id,判定当前租户是否具备修改所述待修改字段的权限;若是,则执行后续步骤;若否,则反馈修改失败信息并停止执行后续步骤。[0108]在这一实施例中,在进行字段修改时提取可修改所述待修改字段的租户id,例如从表7中提取的“允许修改租户id”中对应的租户id,即可判定当前租户是否具备修改待修改字段的权限。[0109]在一个优选的实施例中,还包括:接收字段查询请求;其中,所述字段查询请求包括:待查询字段所对应的第四租户id、待查询字段的字段名称、以及待查询字段所归属的第四租户表的第四租户表名;根据第四租户id以及第四租户表名在所述第一元数据表中查找对应的数据组,并根据所查找到的数据组确定对应的第四主键id;将所述第四主键id、第四租户id以及待查询字段的字段名称与所述第二元数据表中所存储的数据进行匹配,提取待查询字段所对应的映射字段;根据所述待查询字段所对应的映射字段,确定所述待查询字段的字段值在所述预设共享物理表中的存储位置,根据所确定的存储位置将所述待查询字段的字段值进行提取并显示。通过这一实施例,完成字段查询的操作。[0110]同时,在字段查询的过程中可进行权限控制,在一优选的实施例中,在将所述第四主键id、第四租户id以及待查询字段的字段名称与所述第二元数据表中所存储的数据进行匹配,提取待查询字段所对应的映射字段之前,还包括:[0111]将所述第四主键id、第四租户id以及待查询字段的字段名称与所述第二元数据表中所存储的数据进行匹配,提取待查询字段所对应的权限控制信息;根据所述待查询字段所对应的权限控制信息,提取可查询所述待查询字段的租户id;根据当前租户的租户id以及可查询所述待查询字段的租户id,判定当前租户是否具备查询所述待查询字段的权限;若是,则执行后续步骤;若否,则反馈查询失败信息并停止执行后续步骤。[0112]在这一实施例中,在进行字段修改时提取可查询所述待查询字段的租户id,例如从表7中提取的“允许查询租户id”中对应的租户id,即可判定当前租户是否具备查询待查询字段的权限。[0113]在上述方法项实施例的基础上,本发明对应提供了一装置项实施例;[0114]如图2所示,本发明一实施例提供一种基于元数据表的多租户数据处理装置,包括:字段新增请求接收模块、映射字段确定模块、元数据表数据存储模块以及字段值存储模块;[0115]所述字段新增请求接收模块,用于接收字段新增请求;其中,所述字段新增请求包括:租户id、新增字段名称、新增字段值以及新增字段所归属的租户表的租户表名;其中,所述租户表用于存储各新增字段的新增字段名称;[0116]所述映射字段确定模块,用于判断在接收所述字段新增请求前,是否已接收过租户id相同且租户表名相同的已接收字段新增请求;若否,则将预设共享物理表中的初始映射字段作为所述字段新增请求所对应的映射字段;若是,则将前一所述已接收字段新增请求所对应的映射字段的下一映射字段作为所述字段新增请求所对应的映射字段;其中,所述预设共享物理表用于存储各个租户的新增字段的新增字段值,所述预设共享物理表包括若干映射字段;[0117]所述元数据表数据存储模块,用于将所述租户id、所述新增字段名称、所述租户表名以及所述字段新增请求所对应的映射字段的字段名称以及所述预设共享物理表的表名存储至预设的元数据表中;[0118]所述字段值存储模块,用于根据所述字段新增请求所对应的映射字段的字段名称,将所述新增字段值存储至所述预设共享物理表中。[0119]需说明的是,上述装置项实施例是与本发明方法项实施例相对应的,其可以实现本发明上述任意一实施例的基于元数据表的多租户数据处理方法;另,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。[0120]以上所述是本发明的优选实施方式,应当指出,对于本
技术领域
:的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1