关系型数据库表的存储方法、设备及可读存储介质与流程

文档序号:26748769发布日期:2021-09-25 01:45阅读:139来源:国知局
1.本发明涉及数据处理
技术领域
:,尤其涉及一种关系型数据库表的存储方法、装置、电子设备及计算机可读存储介质。
背景技术
::2.在智慧农业系统开发过程中,经常存在这种场景,在一个接口中对两张表进行操作,将其中一张表的数据关联到另一张表的主键id。但是,目前的关系型数据库数据插入是没有返回值的,因此只有在数据插入后再次执行查询操作,才能获取到新建表插入数据的主键id,再将主键id保存到另一张表的数据中。3.目前两种表的关联方式的执行逻辑比较繁琐,并且在高并发的情况下,大量的数据插入和查询会给数据库非常大的压力,存在数据丢失的情况。4.为解决上述问题,本发明亟需提供一种新的关系型数据库表的存储方法。技术实现要素:5.本发明提供一种关系型数据库表的存储方法、装置、电子设备及计算机可读存储介质,其主要目的在于通过将关系型数据库中的映射关系表中的所有数据持久化到缓存服务器redis,从而实现在高并发情景下主键id的快速获取,同时解决操作两张表关联时的事务控制问题。6.为实现上述目的,本发明提供的一种关系型数据库表的存储方法,应用于电子设备,所述方法包括:7.构建关系型数据库的映射关系表,其中,所述映射关系表用于存储所述关系型数据库的新建表的名称以及与所述新建表对应的主键id值;8.将所述映射关系表的数据持久化到缓存服务器redis中;9.根据所述缓存服务器redis中的所述映射关系表的数据,获取与待插入数据的新建表对应的当前主键id值;10.根据所述当前主键id值,将数据插入到所述新建表中,其中,当所述新建表与待关联的目标表相关联时,根据所述新建表插入的数据,对所述目标表进行数据更新,并将更新后的所述新建表和目标表保存至所述缓存服务器redis中;11.将保存至所述缓存服务器redis中的所述新建表的数据更新至所述映射关系表中。12.可选地,所述所述映射关系表包括映射关系表的主键id值、所述关系型数据库的新建表的名称以及所述关系型数据库的新建表的主键id值。13.可选地,所述所述映射关系表的数据存储于区块链中,所述将所述映射关系表的数据持久化到缓存服务器redis中,包括:14.读取所述映射关系表的映射关系数据;15.将读取的映射关系数据以半结构化形式保存至所述缓存服务器redis中,其中,在所述缓存服务器redis中对所述映射关系表的数据不设置过期时间。16.可选地,根据所述缓存服务器redis中的所述映射关系表的数据,获取与待插入数据的新建表对应的当前主键id值,包括:17.从所述缓存服务器redis中的所述映射关系表中查找所述新建表的名称;18.根据所述新建表的名称,获取所述新建表的主键id值。19.可选地,所述新建表与待关联的目标表进行关联,包括:20.在所述新建表中设置相关数据项;21.将所述相关数据项与所述目标表的主键id值相互关联;22.所述新建表与所述目标表通过所述相关数据项和所述目标表的主键id值相互关联在一起。23.可选地,所述根据所述新建表格插入的数据,对所述目标表进行数据更新,包括:24.根据所述新建表的相关数据项、所述目标表的主键id值,判断是否对所述目标表进行数据更新;25.当根据所述新建表的相关数据项查询与相对应的目标表的主键id值时,若在所述目标表中查询到相对应的目标表的主键id值,则所述目标表不进行更新;26.若在所述目标表中查询不到相对应的目标表的主键id值,则对所述目标表进行更新。27.为了解决上述问题,本发明还提供一种基关系型数据库表的存储装置,所述装置包括:28.映射关系表构建模块,用于构建关系型数据库的映射关系表,其中,所述映射关系表用于存储所述关系型数据库的新建表的名称以及与所述新建表对应的主键id值;29.数据持久化模块,用于将所述映射关系表的数据持久化到缓存服务器redis中;30.当前主键id值获取模块,用于根据所述缓存服务器redis中的所述映射关系表的数据,获取与待插入数据的新建表对应的当前主键id值;31.数据插入模块,用于根据所述当前主键id值,将数据插入到与所述新建表中;32.新建表与目标表关联模块,用于当所述新建表与待关联的目标表相关联时,根据所述新建表插入的数据,对所述目标表进行数据更新,并将更新后的所述新建表和目标表保存至所述缓存服务器redis中;33.数据更新模块,用于将保存至所述缓存服务器redis中的所述新建表的数据更新至所述映射关系表中。34.可选地,所述数据持久化模块包括数据读取模块和数据存储模块,其中,35.所述数据读取模块,用于读取所述映射关系表的映射关系数据;36.所述数据存储模块,用于将读取的映射关系数据以半结构化形式保存至所述缓存服务器redis中,其中,在所述缓存服务器redis中对所述映射关系表的数据不设置过期时间。37.为了解决上述问题,本发明还提供一种电子设备,所述电子设备包括:38.至少一个处理器;以及,39.与所述至少一个处理器通信连接的存储器;其中,40.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的关系型数据库表的存储的步骤。41.为了解决上述问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被电子设备中的处理器执行以实现上述所述的关系型数据库表的存储方法。42.本发明实施例通过构建关系型数据库的映射关系表;将所述映射关系表的数据持久化到缓存服务器redis中;根据所述缓存服务器redis中的所述映射关系表的数据,获取与待插入数据的新建表对应的当前主键id值;根据所述当前主键id值,将数据插入到与所述新建表中;其中,当所述新建表与待关联的目标表相关联时,根据所述新建表插入的数据,对所述目标表进行数据更新,并将更新后的所述新建表和所述目标表保存至所述缓存服务器redis中;将保存至所述缓存服务器redis中的所述新建表的数据更新至所述映射关系表中。本发明通过将关系型数据库中的映射关系表中的所有数据持久化到缓存服务器redis,从而实现在高并发情景下主键id的快速获取,同时解决操作两张表关联时的事务控制问题。附图说明43.图1为本发明一实施例提供的关系型数据库表的存储方法的流程示意图;44.图2为本发明一实施例提供的关系型数据库表的存储装置的模块示意图;45.图3为本发明一实施例提供的实现关系型数据库表的存储方法的电子设备的内部结构示意图。46.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式47.在下面的描述中,许多具体的细节被阐述。然而,应当理解的是,本发明的实施例可以在没有这些具体细节的情况下实现。在其他实例中,众所周知的方法、结构、和技术没有被详细地示出,以免模糊对本说明书的理解。对“一个实施例”、“实施例”、“示例性实施例”、“各种实施例”等等的参考表示本发明所描述的该实施例可包括特定的特征、结构、或特性,但并不是每一个实施例都必须包括该特定特征、结构、或特性。此外,短语“在一个实施例中”的反复使用不一定是指同一个实施例,尽管有可能是。48.如本文所使用的,除非另外指明,使用序数形容词“第一”、“第二”、“第三”等等来描述公共的物体仅表明类似物体的不同实例正被参考,并且不意图暗示如此描述的该物体必须依照给定的顺序,无论在时间上、空间上、顺序上还是任何其他的方式。49.如本文所使用的,除非另外指明,术语“移动设备”和/或“设备”一般是指无线通信设备,并且更具体地指以下的一个或多个:便携式电子设备、电话(例如,蜂窝式电话、智能手机)、计算机(例如,膝上型电脑、平板电脑)、便携式媒体播放器、个人数字助理(pda)、或具有联网能力的任何其他电子设备。50.本发明提供一种关系型数据库表的存储方法。参照图1所示,为本发明一实施例提供的关系型数据库表的存储方法的流程示意图。该方法可以由一个装置执行,该装置可以由软件和/或硬件实现。51.在本实施例中,关系型数据库表的存储方法,包括:52.s1:构建关系型数据库的映射关系表,其中,所述映射关系表用于存储所述关系型数据库的新建表的名称以及与所述新建表对应的主键id值;53.s2:将所述映射关系表的数据持久化到缓存服务器redis中;54.s3:根据所述缓存服务器redis中的所述映射关系表的数据,获取与待插入数据的新建表对应的当前主键id值;55.s4:根据所述当前主键id值,将数据插入到所述新建表中,其中,当所述新建表与待关联的目标表相关联时,根据所述新建表插入的数据,对所述目标表进行数据更新,并将更新后的所述新建表和目标表保存至所述缓存服务器redis中;56.s5:将保存至所述缓存服务器redis中的所述新建表的数据更新至所述映射关系表中。57.上述为本发明的关系型数据库表的存储方法,通过将关系型数据库中的映射关系表中的所有数据持久化到缓存服务器redis,从而实现在高并发情景下主键id的快速获取,同时解决操作两张表关联时的事务控制问题。58.在本发明的实施例中,查询表的主键id值从缓存服务器redis缓存中获取,能够提高查询效率。其中,redis支持高并发、高性能,而且redis操作是原子的,同时支持事务;redis中的数据持久化到硬盘后,能够保证在断电后数据不会丢失,重启的时候可以再次加载进行使用。在本发明中,提前获取表的主键id值,能够对两张不同且关联的表进行其他操作,方便进行事务控制。采用本发明的存储方法,能够省略数据插入后的再次查询的操作,减轻查询数据库带来的压力,也能够消除冗余代码,让代码更加简洁,减轻程序员的工作量。59.在步骤s1中,所述映射关系表包括映射关系表的主键id值、所述关系型数据库的新建表的名称以及所述关系型数据库的新建表的主键id值。其中,所述映射关系表(table_id)包括id、table_name和id_value三个字段,id是table_id表(映射关系表)的主键id,table_name是关系型数据库的新建表的名称,id_value是新建表的主键id值,默认新建表的主键id值为0。60.在本发明一个具体的实施例中,映射关系表table_id的举例如下:61.idtable_name(表名)id_value(主键id值)1crab_fishing02crab_specs03crab_plan0………………62.在上述表格中,table_id表示新建表的表名与表主键id的映射关系表;63.表1的表名为crab_fishing,表名为crab_fishing的主键id值为0;64.表2的名称为crab_specs,表名为crab_specs的主键id值为0;65.表3的名称为crab_plan,表名为crab_specs的主键id值为0。66.在步骤s2中,将所述映射关系表的数据持久化到缓存服务器redis中,包括:67.s21:读取所述映射关系表的映射关系数据;68.s22:并将读取的映射关系数据以半结构化形式保存至所述缓存服务器redis中,其中,在所述缓存服务器redis中对所述映射关系表的数据不设置过期时间。69.在本发明的实施例中,在缓存服务器redis中对映射关系表的数据不设置过期时间,这样数据就会一直保存在redis内存中,从redis内存中加载数据速度很快,进而提高查询效率。70.其中,缓存服务器redis具有一定的持久化功能,作为持久层,它存储的数据为半结构化,这使的redis的读入速度较关系型数据库速度更快。redis与关系型数据库相比,redis作为缓存,支持数据存入内存,读写响应速度非常快,redis的操作都是原子的,支持高并发下的事务控制。71.在本发明的实施例中,将映射关系表的数据持久化到缓存服务器redis中,redis基于key‑value存储,通过新建表的表名获取到主键id值,此主键id值是唯一的,能够保证数据操作原子性同时也极大的提升查询效率。72.在步骤s3中,所述根据所述缓存服务器redis中的所述映射关系表的数据,获取与待插入数据的新建表对应的当前主键id值,包括:73.s31:从所述缓存服务器redis中的所述映射关系表中查找所述新建表的表名;74.s32:根据所述新建表的表名,获取所述新建表的主键id值。75.在本发明的实施例中,在向table_name字段中存储的表中插入数据时,首先从缓存服务器redis中获取新建表对应的id_value的值,该值即为新建表的当前主键id。其中,table_name字段中存储的表指新建表,在缓存服务器redis中的映射关系表中查找此表的名称,根据新建表的名称,获取新建表对应的id_value的值,该值即为新建表的当前主键id值;并且根据所述当前主键id值,将数据插入到与所述新建表中。76.在步骤s4中,所述将所述新建表与待关联的目标表进行关联,包括:77.s41:在所述新建表中设置相关数据项;78.s42:将所述相关数据项与所述目标表的主键id值相互关联;79.s43:所述新建表与所述目标表通过所述相关数据项、所述目标表的主键id值相互关联在一起。80.在步骤s42中,通过loadrunner脚本将所述相关数据项与所述目标表的主键id值相互关联。81.在本发明的实施例中,关联(correlation)就是指在脚本回放过程中,客户端发出请求,通过关联函数所定义的左右边界值(也就是关联规则),在服务器所响应的内容中查找,得到相应的值,已变量的形式替换录制时的静态值,从而向服务器发出正确的请求,这种动态获得服务器响应内容的方法被称作关联。其中,关联也属于一同特殊的参数化,只是与一般的参数化有些不同。一般的参数化的参数来源于一个文件、一个定义的table、通过sql写的一个结果集等,但关联所获得的参数是服务器响应请求所返回的一个符合条件的、动态的值。82.在步骤s4中,所述根据所述新建表的插入的数据,对所述目标表进行数据更新,包括:83.44:根据所述新建表的插入的相关数据项和所述目标表的主键id值,确定是否对所述目标表进行数据更新;84.s45:根据所述新建表的插入的相关数据项查询与所述相关数据项相对应的目标表的主键id值,若在所述目标表中查询到相对应的目标表的主键id值,则所述目标表不进行更新;85.s46:若在所述目标表中查询不到相对应的目标表的主键id值,则所述目标表进行更新。86.其中,所述目标表更新具体是指在所述目标表中插入能与所述新建表相关联的信息。87.在本发明的一个具体的实施例中,举例说明新建表和目标表是如何进行关联的。在数据开发的过程中,业务层接收的数据可能会涉及到多张表,数据需要拆分保存到两张表中。现在假设有两张表(表a和表b),下面将说明如何将表a和表b关联在一起的;其中,表a为新建表,表b为目标表。88.表a中数据如下89.idnameclassid…1张三1…2李四1…3王五24赵六3…90.表b91.idclass_nameclass_owner…1一年级1班李老师…2一年级2班宋老师…92.在上述表a和表b中,表a中的classid为相关数据项与表b的id主键值关联。在具体应用中,为了方便查询,通常会将表b的主键值作为相关数据项保存到表a中;但是当相关数据还没有保存到表b中时,并不知道该数据在表b中的主键,则表a的数据中就无法保存表b的关联主键。而调用查询方法插查询表b的主键值虽然也能实现表a数据的存储,但相应的增加了数据库的查询压力。但如果从内存中直接获取表b的主键,速度快、效率高,便于控制事务。93.在本发明的实施例中,在上述的实施例两张表中,将表a中的classid与表b中的id通过loadrunner脚本相互关联,如果查询王五,在表a中可以知道与表b的主键值为2,则查询表b的id为2的信息,则是:班级为一年级2班,老师为宋老师,则此时,表b则不需要更新数据。若果查询赵六,在表a中可以知道与表b的主键值应该为3,但是由于表表b的id没有为3的信息,则此时,需要更新表b更新数据,即在表b插入id为3的信息,这样,表a和表b才能关联在一起。94.在步骤s5中,将保存至所述缓存服务器redis中的所述新建表的数据更新至所述映射关系表中,也就是说,将新建表的当前主键id值映射关系表中;即:当新建表和目标表相关表的数据保存成功后,更新id_value的值到关系型数据库表table_id中,从而实现关系型数据库与缓存服务器redis的数据同步,即:关系型数据库表名与主键id值(映射关系表)通过关系型数据库表存储,防止服务器断电后数据丢失,服务重启后还能再次加载。95.本发明实施例通过构建关系型数据库的映射关系表;将所述映射关系表的数据持久化到缓存服务器redis中;在向所述新建表其中一个表插入数据时,根据所述缓存服务器redis中的所述映射关系表的数据,获取新建表对应的当前主键id值;根据所述当前主键id值,将数据插入到与所述新建表中;其中,当所述新建表与待关联的目标表相关联时,根据所述新建表格插入的数据,对所述目标表进行数据更新,并将更新后的所述新建表和目标表保存至所述缓存服务器redis中;将保存至所述缓存服务器redis中的所述新建表的数据更新至所述映射关系表中。本发明通过将关系型数据库中的映射关系表中的所有数据持久化到缓存服务器redis,从而实现在高并发情景下主键id的快速获取,同时解决操作两张表关联时的事务控制问题。96.如图2所示,是本发明关系型数据库表的存储装置的功能模块图。本发明所述关系型数据库表的存储装置100可以安装于电子设备中。根据实现的功能,所述关系型数据库表的存储装置100可以包括:映射关系表构建模块101、数据持久化模块102、当前主键id值获取模块103、数据插入模块104、新建表与目标表关联模块105、数据更新模块106。本发明所述模块也可以称之为单元,是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。97.在本实施例中,关于各模块/单元的功能如下:98.映射关系表构建模块101,用于构建关系型数据库的映射关系表,其中,所述映射关系表用于存储所述关系型数据库的新建表的名称以及与所述新建表对应的主键id值;99.数据持久化模块102,用于将所述映射关系表的数据持久化到缓存服务器redis中;100.当前主键id值获取模块103,用于根据所述缓存服务器redis中的所述映射关系表的数据,获取与待插入数据的新建表对应的当前主键id值;101.数据插入模块104,用于根据所述当前主键id值,将数据插入到所述新建表中;102.新建表与目标表关联模块105,用于当所述新建表与待关联的目标表相关联时,根据所述新建表插入的数据,对所述目标表进行数据更新,并将更新后的所述新建表和目标表保存至所述缓存服务器redis中;103.数据更新模块106,用于将保存至所述缓存服务器redis中的所述新建表的数据更新至所述映射关系表中。104.其中,在映射关系表构建模块101中,所述映射关系表包括映射关系表的主键id值、所述关系型数据库的新建表的名称以及所述关系型数据库的新建表的主键id值。其中,所述映射关系表(table_id)包括id、table_name和id_value三个字段,id是table_id表(映射关系表)的主键id,table_name是关系型数据库的新建表的名称,id_value是新建表的主键id值,默认新建表的主键id值为0。105.在本发明一个具体的实施例中,映射关系表table_id的举例如下:[0106][0107][0108]在上述表格中,table_id表示新建表的表名与表主键id的映射关系表;[0109]表1的表名为crab_fishing,表名为crab_fishing的主键id值为0;[0110]表2的名称为crab_specs,表名为crab_specs的主键id值为0;[0111]表3的名称为crab_plan,表名为crab_specs的主键id值为0。[0112]在数据持久化模块102中,用于将所述映射关系表的数据持久化到缓存服务器redis中,包括:数据读取模块和数据保存模块,其中,[0113]数据读取模块,用于读取所述映射关系表的映射关系数据;[0114]数据保存模块,用于将读取的映射关系数据以半结构化形式保存至所述缓存服务器redis中,其中,在所述缓存服务器redis中对所述映射关系表的数据不设置过期时间。[0115]在本发明的实施例中,在缓存服务器redis中对映射关系表的数据不设置过期时间,这样数据就会一直保存在redis内存中,从redis内存中加载数据速度很快,进而提高查询效率。[0116]其中,缓存服务器redis具有一定的持久化功能,作为持久层,它存储的数据为半结构化,这使的redis的读入速度较关系型数据库速度更快。redis与关系型数据库相比,redis作为缓存,支持数据存入内存,读写响应速度非常快,redis的操作都是原子的,支持高并发下的事务控制。[0117]在本发明的实施例中,将映射关系表的数据持久化到缓存服务器redis中,redis基于key‑value存储,通过新建表的表名获取到主键id值,此主键id值是唯一的,能够保证数据操作原子性同时也极大的提升查询效率。[0118]其中,当前主键id值获取模块103用于所述在向所述新建表其中一个表插入数据时,根据所述缓存服务器redis中的所述映射关系表的数据,确定新建表对应的当前主键id值,包括表名查找模块和主键id值获取模块,其中,[0119]表名查找模块,用于从所述缓存服务器redis中的所述映射关系表中查找所述新建表的表名;[0120]主键id值获取模块,用于根据所述新建表的表名,获取所述新建表的主键id值。[0121]在本发明的实施例中,在向table_name字段中存储的表中插入数据时,首先从缓存服务器redis中获取新建表对应的id_value的值,该值即为新建表的当前主键id。其中,table_name字段中存储的表指新建表,在缓存服务器redis中的映射关系表中查找此表的名称,根据新建表的名称,获取新建表对应的id_value的值,该值即为新建表的当前主键id值;并且根据所述当前主键id值,将数据插入到与所述新建表中。[0122]其中,数据插入模块104,用于根据所述当前主键id值,将数据插入到与所述新建表中。[0123]新建表与目标表关联模块105,用于所述新建表与待关联的目标表相关联,包括:在所述新建表中设置相关数据项;[0124]在所述目标表中设置有所述目标表的主键id值;[0125]将所述相关数据项与所述目标表的主键id值相互关联;[0126]所述新建表与所述目标表通过所述相关数据项、所述目标表的主键id值相互关联在一起。[0127]其中,通过loadrunner脚本将所述相关数据项与所述目标表的主键id值相互关联。[0128]在本发明的实施例中,关联(correlation)就是指在脚本回放过程中,客户端发出请求,通过关联函数所定义的左右边界值(也就是关联规则),在服务器所响应的内容中查找,得到相应的值,已变量的形式替换录制时的静态值,从而向服务器发出正确的请求,这种动态获得服务器响应内容的方法被称作关联。其中,关联也属于一同特殊的参数化,只是与一般的参数化有些不同。一般的参数化的参数来源于一个文件、一个定义的table、通过sql写的一个结果集等,但关联所获得的参数是服务器响应请求所返回的一个符合条件的、动态的值。[0129]其中,在新建表与目标表关联模块105中,所述根据所述新建表的插入的数据,对所述目标表进行数据更新,包括:[0130]根据所述新建表的插入的相关数据项和所述目标表的主键id值,确定是否对所述目标表进行数据更新;[0131]根据所述新建表的插入的相关数据项查询与所述相关数据项相对应的目标表的主键id值,若在所述目标表中查询到相对应的目标表的主键id值,则所述目标表不进行更新;[0132]若在所述目标表中查询不到相对应的目标表的主键id值,则所述目标表进行更新。[0133]其中,所述目标表更新具体是指在所述目标表中插入能与所述新建表相关联的信息。在本发明具体的实施例中,举例说明新建表和目标表是如何进行关联的。在数据开发的过程中,业务层接收的数据可能会涉及到多张表,数据需要拆分保存到两张表中。现在假设有两张表(表a和表b),下面将说明如何将表a和表b关联在一起的;其中,表a为新建表,表b为目标表。[0134]表a[0135]idnameclassid…1张三1…2李四1…3王五24赵六3…[0136]表b[0137]idclass_nameclass_owner…1一年级1班李老师…2一年级2班宋老师…[0138]在上述表a和表b中,表a中的classid为相关数据项与表b的id主键值关联。在具体应用中,为了方便查询,通常会将表b的主键值作为相关数据项保存到表a中;但是当相关数据还没有保存到表b中时,并不知道该数据在表b中的主键,则表a的数据中就无法保存表b的关联主键。而调用查询方法插查询表b的主键值虽然也能实现表a数据的存储,但相应的增加了数据库的查询压力。但如果从内存中直接获取表b的主键,速度快、效率高,便于控制事务。[0139]在本发明的实施例中,在上述的实施例两张表中,将表a中的classid与表b中的id通过loadrunner脚本相互关联,如果查询王五,在表a中可以知道与表b的主键值为2,则查询表b的id为2的信息,则是:班级为一年级2班,老师为宋老师,则此时,表b则不需要更新数据。若果查询赵六,在表a中可以知道与表b的主键值应该为3,但是由于表表b的id没有为3的信息,则此时,需要更新表b更新数据,即在表b插入id为3的信息,这样,表a和表b才能关联在一起。[0140]在数据更新模块106中,将保存至所述缓存服务器redis中的所述新建表的数据更新至所述映射关系表中,也就是说,将新建表的当前主键id值映射关系表中;即:当新建表和目标表相关表的数据保存成功后,更新id_value的值到关系型数据库表table_id中,从而实现关系型数据库与缓存服务器redis的数据同步,即:关系型数据库表名与主键id值(映射关系表)通过关系型数据库表存储,防止服务器断电后数据丢失,服务重启后还能再次加载。[0141]本发明实施例通过构建关系型数据库的映射关系表;将所述映射关系表的数据持久化到缓存服务器redis中;在向所述新建表其中一个表插入数据时,根据所述缓存服务器redis中的所述映射关系表的数据,获取新建表对应的当前主键id值;根据所述当前主键id值,将数据插入到与所述新建表中;其中,当所述新建表与待关联的目标表相关联时,根据所述新建表格插入的数据,对所述目标表进行数据更新,并将更新后的所述新建表和目标表保存至所述缓存服务器redis中;将保存至所述缓存服务器redis中的所述新建表的数据更新至所述映射关系表中。本发明通过将关系型数据库中的映射关系表中的所有数据持久化到缓存服务器redis,从而实现在高并发情景下主键id的快速获取,同时解决操作两张表关联时的事务控制问题。[0142]如图3所示,是本发明实现关系型数据库表的存储方法的电子设备的结构示意图。[0143]所述电子设备1可以包括处理器10、存储器11和总线,还可以包括存储在所述存储器11中并可在所述处理器10上运行的计算机程序,如关系型数据库表的存储程序12。[0144]其中,所述存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:sd或dx存储器等)、磁性存储器、磁盘、光盘等。所述存储器11在一些实施例中可以是电子设备1的内部存储单元,例如该电子设备1的移动硬盘。所述存储器11在另一些实施例中也可以是电子设备1的外部存储设备,例如电子设备1上配备的插接式移动硬盘、智能存储卡(smartmediacard,smc)、安全数字(securedigital,sd)卡、闪存卡(flashcard)等。进一步地,所述存储器11还可以既包括电子设备1的内部存储单元也包括外部存储设备。所述存储器11不仅可以用于存储安装于电子设备1的应用软件及各类数据,例如数据稽核程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。存储器可以存储内容,该内容可由电子设备显示或被发送到其他设备(例如,耳机)以由其他设备来显示或播放。存储器还可以存储从其他设备接收的内容。该来自其他设备的内容可由电子设备显示、播放、或使用,以执行任何必要的可由电子设备和/或无线接入点中的计算机处理器或其他组件实现的任务或操作。[0145]所述处理器10在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(centralprocessingunit,cpu)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述处理器10是所述电子设备的控制核心(controlunit),利用各种接口和线路连接整个电子设备的各个部件,通过运行或执行存储在所述存储器11内的程序或者模块(例如数据稽核程序等),以及调用存储在所述存储器11内的数据,以执行电子设备1的各种功能和处理数据。电子还可包括芯片组(未示出),其用于控制一个或多个处理器与用户设备的其他组件中的一个或多个之间的通信。在特定的实施例中,电子设备可基于架构或架构,并且处理器和芯片集可来自处理器和芯片集家族。该一个或多个处理器104还可包括一个或多个专用集成电路(asic)或专用标准产品(assp),其用于处理特定的数据处理功能或任务。[0146]所述总线可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。该总线可以分为地址总线、数据总线、控制总线等。所述总线被设置为实现所述存储器11以及至少一个处理器10等之间的连接通信。[0147]此外,网络和i/o接口可包括一个或多个通信接口或网络接口设备,以提供经由网络(未示出)在电子设备和其他设备(例如,网络服务器)之间的数据传输。通信接口可包括但不限于:人体区域网络(ban)、个人区域网络(pan)、有线局域网(lan)、无线局域网(wlan)、无线广域网(wwan)、等等。用户设备102可以经由有线连接耦合到网络。然而,无线系统接口可包括硬件或软件以广播和接收消息,其使用wi‑fi直连标准和/或ieee802.11无线标准、蓝牙标准、蓝牙低耗能标准、wi‑gig标准、和/或任何其他无线标准和/或它们的组合。[0148]无线系统可包括发射器和接收器或能够在由ieee802.11无线标准所支配的操作频率的广泛范围内操作的收发器。通信接口可以利用声波、射频、光学、或其他信号来在电子设备与其他设备(诸如接入点、主机、服务器、路由器、读取设备、和类似物)之间交换数据。网络118可包括但不限于:因特网、专用网络、虚拟专用网络、无线广域网、局域网、城域网、电话网络、等等。[0149]显示器可包括但不限于液晶显示器、发光二极管显示器、或由在美国马萨诸塞州剑桥城的eink公司(einkcorp.ofcambridge,massachusetts)所制造的e‑inktm显示器。该显示器可用于将内容以文本、图像、或视频的形式显示给用户。在特定的实例中,该显示器还可以作为触控屏显示器操作,其可以使得用户能够藉由使用某些手指或手势来触摸屏幕以启动命令或操作。[0150]图3仅示出了具有部件的电子设备,本领域技术人员可以理解的是,图2示出的结构并不构成对所述电子设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。[0151]例如,尽管未示出,所述电子设备1还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理装置与所述至少一个处理器10逻辑相连,从而通过电源管理装置实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备1还可以包括多种传感器、蓝牙模块、wi‑fi模块等,在此不再赘述。[0152]进一步地,所述电子设备1还可以包括网络接口,可选地,所述网络接口可以包括有线接口和/或无线接口(如wi‑fi接口、蓝牙接口等),通常用于在该电子设备1与其他电子设备之间建立通信连接。[0153]可选地,该电子设备1还可以包括用户接口,用户接口可以是显示器(display)、输入单元(比如键盘(keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organiclight‑emittingdiode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备1中处理的信息以及用于显示可视化的用户界面。[0154]应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。[0155]所述电子设备1中的所述存储器11存储的关系型数据库表的存储程序12是多个指令的组合,在所述处理器10中运行时,可以实现:[0156]构建关系型数据库的映射关系表,其中,所述映射关系表用于存储所述关系型数据库的新建表的名称以及与所述新建表对应的主键id值;[0157]将所述映射关系表的数据持久化到缓存服务器redis中;[0158]根据所述缓存服务器redis中的所述映射关系表的数据,获取与待插入数据的新建表对应的当前主键id值;[0159]根据所述当前主键id值,将数据插入到所述新建表中,其中,当所述新建表与待关联的目标表相关联时,根据所述新建表插入的数据,对所述目标表进行数据更新,并将更新后的所述新建表和所述目标表保存至所述缓存服务器redis中;[0160]将保存至所述缓存服务器redis中的所述新建表的数据更新至所述映射关系表中。[0161]具体地,所述处理器10对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。需要强调的是,为进一步保证上述每组待处理语义单元的相似度语义处理结果的私密和安全性,上述每组待处理语义单元的相似度语义处理还可以存储于一区块链的节点中。[0162]进一步地,所述电子设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read‑onlymemory)。[0163]在本发明的实施例中,计算机可读存储介质,所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被电子设备中的处理器执行以实现上述所述的关系型数据库表的存储方法的步骤,具体方法如下:[0164]构建关系型数据库的映射关系表,其中,所述映射关系表用于存储所述关系型数据库的新建表的名称以及与所述新建表对应的主键id值;[0165]将所述映射关系表的数据持久化到缓存服务器redis中;[0166]根据所述缓存服务器redis中的所述映射关系表的数据,获取与待插入数据的新建表对应的当前主键id值;[0167]根据所述当前主键id值,将数据插入到所述新建表中,其中,当所述新建表与待关联的目标表相关联时,根据所述新建表插入的数据,对所述目标表进行数据更新,并将更新后的所述新建表和所述目标表保存至所述缓存服务器redis中;[0168]将保存至所述缓存服务器redis中的所述新建表的数据更新至所述映射关系表中。[0169]在本发明所提供的几个实施例中,应该理解到,所揭露的设备,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。[0170]所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。[0171]另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。[0172]以上参考根据本发明的示例性实施例的系统和方法和/或计算机程序产品的框图和流程图描述了本发明的某些实施例。应当理解的是,框图和流程图中的一个或多个方框、以及在框图和流程图中的方框的组合,可以分别由计算机可执行程序指令实现。同样地,根据本发明的一些实施例,框图和流程图中的一些方框可以不必按照所呈现的顺序执行,或者甚至可以完全不需要执行。[0173]这些计算机可执行程序指令可以被加载到通用计算机、专用计算机、处理器、或其他可编程数据处理装置上以产生特定机器,使得在计算机、处理器、或其他可编程数据处理装置上执行的指令创建用于实现在流程图方框或多个方框中所指定的一个或多个功能的构件。这些计算机程序产品还可以存储在计算机可读存储器中,其可以指导计算机或其他可编程数据处理装置以特定的方式运行,使得存储在计算机可读存储器中的指令产生制品,该制品包括实现在流程图的方框或多个方框中指定的一个或多个功能的指令构件。例如,本发明的实施例可提供计算机程序产品,其包括其中包含有计算机可读程序代码或程序指令的计算机可用介质,所述计算机可读程序代码适于被执行以实现在流程图方框或多个方框中指定的一个或多个功能。计算机程序指令还可以被加载到计算机或其他可编程数据处理装置上,以致使一系列操作元素或步骤在计算机或其他可编程装置上执行易产生计算机实现的程序,使得在计算机或其他可编程装置上执行的指令提供用于实现在流程图方框或多个方框中指定的功能的元素或步骤。[0174]相应地,框图或流程图中的方框支持用以执行指定功能的构件的组合、用于执行指定功能的元素或步骤与用于执行指定功能的程序指令构件的组合。还应当理解的是,框图和流程图中的每个方框以及框图和流程图中的方框的组合可由执行指定功能、元素或步骤的专用的基于硬件的计算机系统实现,或由专用硬件或计算机指令的组合实现。[0175]本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。[0176]对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。[0177]因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。[0178]虽然本发明的某些实施例已经结合目前被认为是最实用的且各式各样的实施例进行了描述,但应当理解,本发明并不限于所公开的实施例,而是意在覆盖包含在所附权利要求书的范围之内的各种修改和等价布置。虽然本文采用了特定的术语,但它们仅以一般性和描述性的意义使用,而不是用于限制的目的。[0179]最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1