CN109739835A - 一种数据版本保存方法及装置 - Google Patents
一种数据版本保存方法及装置 Download PDFInfo
- Publication number
- CN109739835A CN109739835A CN201811635773.1A CN201811635773A CN109739835A CN 109739835 A CN109739835 A CN 109739835A CN 201811635773 A CN201811635773 A CN 201811635773A CN 109739835 A CN109739835 A CN 109739835A
- Authority
- CN
- China
- Prior art keywords
- data
- tables
- record
- data record
- keyword
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
针对现有技术中人工保存在开发过程中更改的数据记录比较繁琐、效率较低的问题,本发明公开了一种数据版本保存方法及装置,该方法包括:获取当前开发环境中的第一数据表,以及所述版本库中与所述第一数据表的第一标识关联的第二数据表;对比所述第一数据表与所述第二数据表的数据记录,确定操作记录模型;按照所述操作记录模型指示的所述发生变化的数据记录中每条数据记录的操作类型,对该条数据记录在所述第二数据表中对应的数据记录进行更新,并保存更新后的第三数据表;将所述第三数据表作为最新版本的数据表,并与所述第一标识关联。
Description
技术领域
本发明涉及数据库领域,尤其涉及一种数据版本保存方法及装置。
背景技术
在项目开发过程中,数据库会被频繁访问,数据库中的数据也会经常发生改变,因此数据库中的数据表在不同的时期会有不同是数据版本。数据库的数据版本一般由专人维护,在开发周期长的项目中,开发人员容易错提漏提,从而造成版本丢失。人工保存、整合数据库中发生变更的数据记录,机械繁杂易出错且浪费人力。
因此,人工保存在开发过程中更改的数据记录比较繁琐、效率较低是一个亟待解决的问题。
发明内容
本申请实施例提供了一种数据版本保存方法及装置,解决了现有技术中人工保存在开发过程中更改的数据记录比较繁琐、效率较低的问题。
本发明实施例提供一种数据版本保存方法,该方法包括:
获取当前开发环境中的第一数据表,以及所述版本库中与所述第一数据表的第一标识关联的第二数据表;所述第一数据表为其中一个数据表;
对比所述第一数据表与所述第二数据表的数据记录,确定操作记录模型;所述操作记录模型用于指示所述第一数据表相对所述第二数据表发生变化的数据记录以及操作类型;
按照所述操作记录模型指示的所述发生变化的数据记录中每条数据记录的操作类型,对该条数据记录在所述第二数据表中对应的数据记录进行更新,并保存更新后的第三数据表;
将所述第三数据表作为最新版本的数据表,并与所述第一标识关联。
可选的,根据所述第一数据表与所述第二数据表,生成数据变更文件;所述数据变更文件用于记录所述发生变化的数据记录以及操作类型;
所述第二数据表的版本为第一版本,所述第三数据表的版本为第二版本;
根据所述数据变更文件记录的所述发生变化的数据记录的操作类型,将所述发生变化的数据记录与所述第一版本对应的第一基线文件中的数据记录进行合并,生成所述第二版本对应的第二基线文件;所述第一基线文件包括所述第二数据表中的数据记录及操作类型;所述第二基线文件包括所述第三数据表中的数据记录及操作类型。
可选的,若所述第一数据表包括第一关键字,且所述第二数据表不包括所述第一关键字,则确定所述第一关键字的操作类型为新增;所述第一关键字为所述第一数据表或者所述第二数据表中任一关键字;
若所述第一数据表不包括所述第一关键字,且所述第二数据表包括所述第一关键字,则确定所述第一关键字的操作类型为删除;
若所述第一数据表和所述第二数据表均包括所述第一关键字,且所述第一关键字在所述第一数据表中关联的第一数据记录,与所述第一关键字在所述第二数据表中关联的第二数据记录不相同,则确定所述第一关键字的操作类型为修改。
可选的,根据第三数据记录以及对应的操作类型,生成第一结构化查询语言SQL语句;所述第三数据记录为所述发生变化的数据记录中的任一数据记录;
通过执行所述第一SQL语句,更新第四数据记录;所述第四数据记录为所述第三数据记录在所述第二数据表中对应的数据记录。
可选的,对第五数据记录在所述第二数据表中对应的第六数据记录进行更新之前,确定所述第六数据记录是否已发生更新;所述第五数据记录为所述发生变化的数据记录中任一数据记录;
若所述第六数据记录已发生更新,则发出更新冲突通知;否则,对所述第六数据记录进行更新。
本发明实施例根据通过对比开发环境中的第一数据表与版本库中对应的第二数据表,并生成指示出发生变化的数据记录及操作类型的操作记录模型,保存第二数据表更新后的第三数据表,并作为与第一标识关联的最新版本的数据表,以数据库中的每张数据表以第一数据库为例,均可按照第二数据表更新为第三数据表后保存的方式,保存当前版本的数据表,合并到版本库。
本发明实施例提供一种数据版本保存装置,该装置包括:
获取模块,用于获取当前开发环境中的第一数据表,以及所述版本库中与所述第一数据表的第一标识关联的第二数据表;
处理模块,用于对比所述第一数据表与所述第二数据表的数据记录,确定操作记录模型;所述操作记录模型用于指示所述第一数据表相对所述第二数据表发生变化的数据记录以及操作类型;
用于按照所述操作记录模型指示的所述发生变化的数据记录中每条数据记录的操作类型,对该条数据记录在所述第二数据表中对应的数据记录进行更新,并保存更新后的第三数据表;
以及用于将所述第三数据表作为最新版本的数据表,并与所述第一标识关联。
可选的,所述第二数据表的版本为第一版本,所述第三数据表的版本为第二版本;
所述处理模块,还用于对比所述第一数据表与所述第二数据表的数据记录,生成数据变更文件;所述数据变更文件用于记录所述发生变化的数据记录以及操作类型;
以及用于根据所述数据变更文件记录的所述发生变化的数据记录的操作类型,将所述发生变化的数据记录与所述第一版本对应的第一基线文件中的数据记录进行合并,生成所述第二版本对应的第二基线文件;所述第一基线文件包括所述第二数据表中的数据记录及操作类型;所述第二基线文件包括所述第三数据表中的数据记录及操作类型。
可选的,所述处理模块,具体用于:
若所述第一数据表包括第一关键字,且所述第二数据表不包括所述第一关键字,则确定所述第一关键字的操作类型为新增;所述第一关键字为所述第一数据表或者所述第二数据表中任一关键字;
若所述第一数据表不包括所述第一关键字,且所述第二数据表包括所述第一关键字,则确定所述第一关键字的操作类型为删除;
若所述第一数据表和所述第二数据表均包括所述第一关键字,且所述第一关键字在所述第一数据表中关联的第一数据记录,与所述第一关键字在所述第二数据表中关联的第二数据记录不相同,则确定所述第一关键字的操作类型为修改。
可选的,所述处理模块,具体用于:
根据第三数据记录以及对应的操作类型,生成第一结构化查询语言SQL语句;所述第三数据记录为所述发生变化的数据记录中的任一数据记录;
通过执行所述第一SQL语句,更新第四数据记录;所述第四数据记录为所述第三数据记录在所述第二数据表中对应的数据记录。
可选的,所述处理模块,还用于对第五数据记录在所述第二数据表中对应的第六数据记录进行更新之前,确定所述第六数据记录是否已发生更新;所述第五数据记录为所述发生变化的数据记录中任一数据记录;
以及用于若所述第六数据记录已发生更新,则发出更新冲突通知;否则,对所述第六数据记录进行更新。
附图说明
图1为本发明实施例提出的一种数据版本保存方法对应的表结构模型示意图;
图2为本发明实施例提出的一种数据版本保存方法对应的步骤流程图;
图3为本发明实施例提出的一种数据版本保存方法对应的生成操作记录模型的步骤流程图;
图4为本发明实施例提出的一种数据版本保存方法对应的操作记录模型的结构示意图;
图5为本发明实施例提出的一种数据版本保存方法对应的将数据表更新到版本库的示意图;
图6为本发明实施例提出的一种数据版本保存方法对应的生成基线文件和数据变更文件的示意图;
图7为本发明实施例提出的一种数据版本保存装置对应的结构示意图。
具体实施方式
为了更好的理解上述技术方案,下面将结合说明书附图及具体的实施方式对上述技术方案进行详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互结合。
在项目开发过程中,数据库会被频繁访问,数据库中的数据也会经常发生改变,因此数据库中的数据表在不同的时期会有不同是数据版本。现有技术中对文本(系统代码)的版本控制较为丰富,涌现了诸多产品,以支持并行开发、版本管理、版本比对等问题。但没有针对数据库数据版本管理的优秀方案和产品。当前,数据版本一般由专人维护,在开发周期长的项目中,开发人员容易错提或漏提数据版本,需要恢复过去的版本,追溯数据操作记录。人工汇总整合数据库数据变更文件,机械繁杂易出错且浪费人力。另外,数据库数据操作无记录。项目过程中数据库数据维护工作繁杂,浪费技术人员时间;数据库数据维护容易出现错提漏提,版本需要返工;数据库数据操作记录无法追溯。因此,本发明实施例提供了一种数据版本保存方法。
类似文本类版本控制引擎中的仓库,本发明实施例针对数据版本控制,提出了数据版本库。版本库是整个方案实施的重要节点,类似于代码类版本控制工具中的源代码库,所有迭代版本中的数据提交操作都在版本库中得到体现。多名开发人员并行开发过程中,各自在独立的开发环境中修改与提交数据库数据,在不经意间很容易覆盖他人已修改部分。版本库的设计与存在,使得这些开发环境中的数据操作有了统一的管理。在方案开始实施时,版本库中仅需建立好各数据表结构,表中记录为空。后续版本库中的数据记录随着分布在各处的开发库的记录变化而进行新增、修改、删除。
数据变化关系生成主要展示分布在各处的开发库中相对版本库的数据修改动作。开发人员在各自的开发环境中任意操作数据记录,通过方案中设计的比较引擎来生成修改记录模型,可以很直观的看到一个差异视图,开发者不费多大力气就能发现他们真正需要的操作记录,从而其数据提交正确性得到保证。
数据的差异比对不是单纯的文本比较,不是对每个表的数据做文本比对来展现结果,这对开发人员来说毫无意义。必须结合表的结构、数据的操作类型来进行体现。首先分析所有需要管理的表,再在版本库中生成每张表的表结构模型。表结构模型如图1所示,为本发明实施例提出的一种数据版本保存方法对应的表结构模型示意图。表结构模型包括主键信息(或唯一索引)、约束名、以及N个主键列及每个主键列的列名,而每个列结果包括该列的默认值、小数位数、是否为空、精度、类型名称等。
如图2所示,为本发明实施例提出的一种数据版本保存方法对应的步骤流程图。
步骤201:获取当前开发环境中的第一数据表,以及所述版本库中与所述第一数据表的第一标识关联的第二数据表。
步骤202:对比所述第一数据表与所述第二数据表的数据记录,确定操作记录模型。
步骤203:按照所述操作记录模型指示的所述发生变化的数据记录中每条数据记录的操作类型,对该条数据记录在所述第二数据表中对应的数据记录进行更新,并保存更新后的第三数据表。
步骤204:将所述第三数据表作为最新版本的数据表,并与所述第一标识关联。
步骤201中,一个开发项目需要多个开发人员共同开发,每个开发人员的开发环境都不同,每个开发环境都有各自的数据库,版本库中要维护每个开发环境的数据库。开发人员会定期提交开发环境中的数据库,因此版本库中保存着这些开发环境中上一次提交版本的数据库的集合。其中,第一标识为能唯一标识第一数据表的标识,举例来说,第一标识为数据表的表名称,表1,第二数据表为版本库中表名称为表1的数据表。
步骤202中,所述操作记录模型用于指示所述第一数据表相对所述第二数据表发生变化的数据记录以及操作类型。操作记录模型至少包括以下三种情况:第一,若所述第一数据表包括第一关键字,且所述第二数据表不包括所述第一关键字,则确定所述第一关键字的操作类型为新增;所述第一关键字为所述第一数据表或者所述第二数据表中任一关键字。第二,若所述第一数据表不包括所述第一关键字,且所述第二数据表包括所述第一关键字,则确定所述第一关键字的操作类型为删除。第三,若所述第一数据表和所述第二数据表均包括所述第一关键字,且所述第一关键字在所述第一数据表中关联的第一数据记录,与所述第一关键字在所述第二数据表中关联的第二数据记录不相同,则确定所述第一关键字的操作类型为修改。其中,第一关键字为任意一个主键,关联的第二数据记录一种可选的情形为,第二数据表中与第一数据记录的主键相同的数据记录。
具体地,如图3所示,为本发明实施例提出的一种数据版本保存方法对应的生成操作记录模型的步骤流程图。需要说明的是,以下步骤只以第一数据表为例,对开发环境中的其它数据表或者其它开发环境的数据表均适用。
步骤301:获取数据表结构模型。
具体地,获取第一数据表的主键信息(或唯一索引)、约束名、以及主键列及列名,该列的默认值、小数位数、是否为空、精度、类型名称等。
步骤302:选定一个主键,并按主键排序获取开发环境中第一数据表的数据记录。
需要说明的是,获取第一数据表的数据记录是分批次进行的。另外,按主键排序的规则是根据具体主键的属性来设定的,举例来说,主键为字符串,排序规则为按主键的字母的ASCII码之和从小到大排序。
步骤303:标记本次最后一条记录Lastrecord-1。
步骤304:获取版本库中主键值小于Lastrecord-1的主键值的所有数据记录。
这里获取方式可根据业务场景灵活设定,如获得大于Lastrecord-1的数据记录。
步骤305:分析第一数据表的每条数据记录。
对于每一条数据记录,都按照后续步骤判断该条数据记录的操作类型。
步骤306:判断第二数据记录是否在第二数据表中不存在。
若是执行步骤307,否则执行步骤308。
步骤307:将第一数据记录加入操作记录模型,并标记第一数据记录的操作类型为新增。
步骤308:判断第二数据记录是否在第二数据表中存在且与第一数据记录的值不相同。
若是,执行步骤309。
步骤309:将第一数据记录加入操作记录模型,并标记第一数据记录的操作类型为修改。
步骤310:分析第二数据表的数据记录。
步骤311:判断本次读取的数据记录中是否存在,在第二数据表中且不第一数据表中的数据记录。若存在则执行步骤312;否则执行步骤314。
步骤312:将该条数据记录加入操作记录模型,并标记第一数据记录的操作类型为删除。
步骤313:读取第一数据表记录,置上一次标记为开始,继续向下获取,标记本次获取操作的最后一条记录Lastrecord-n。
步骤314:判断第一数据表的数据记录是否读取完毕。
若是,则执行步骤316;否则执行步骤315。
步骤315:读取第一数据表记录,获取两次标记间的数据记录。
步骤316:读取第二数据表记录,从标记处向下获取所有数据记录。
步骤317:将标记处向下获取所有数据记录的操作模型均标记为删除。
第一数据表读取完后,第二数据表中标记处向下获取所有数据记录均不在第一数据表中,因此标记为删除。
操作记录模型可用图4中的结构表示。如图4所示,为本发明实施例提出的一种数据版本保存方法对应的操作记录模型的结构示意图。需要说明的是,操作记录模型仅以图4中的结构为例说明,但不限于该结构。该结构包括:比对因素、操作结果集合、操作用户表操作日志和表结构。其中,比对因素包括开发库地址和版本库地址。表结构包括主键集合和列集合。操作结果结合包括操作类型、操作记录类型、修改列集合、差异视图、单条数据记录的操作日志等。
步骤203中,一种可选的实施方式为,对第五数据记录在所述第二数据表中对应的第六数据记录进行更新之前,确定所述第六数据记录是否已发生更新;所述第五数据记录为所述发生变化的数据记录中任一数据记录;若所述第六数据记录已发生更新,则发出更新冲突通知;否则,对所述第六数据记录进行更新。
依据操作记录模型,转换为SQL语句执行到版本库中。在方案开始实施时,版本库中仅需建立好各数据表结构,表中记录为空。数据提交操作后,版本库中体现所有开发人员的记录操作。
数据提交操作同时按照操作用户、操作版本落地操作文件,记录操作历史。使得迭代项目中一系列数据所做改变的历史记录可保持,意味着在整个项目期间,能够跟踪其数据的所有改动痕迹。提交操作同时会进行冲突检测,开发人员提交的记录若与版本中已存在的记录有冲突,会进行冲突提示无法提交。设计冲突检测过程目的是让开发人员可以第一时间解决问题,正确性和高效性得到很大的提升。
如图5所示,为本发明实施例提出的一种数据版本保存方法对应的将数据表更新到版本库的示意图。
读取每个表的操作记录模型,将每个操作记录模型转化为执行操作。具体地,新增类型转化为新增操作,修改类型转化为修改操作,删除类型转化为删除操作。同时生成日志文件,用于对操作记录进行注释,生成记录文件,以用户和版本的维度落地操作模型。
一种可选的实施方式为,根据第三数据记录以及对应的操作类型,生成第一结构化查询语言(Structured Query Language,SQL)语句;所述第三数据记录为所述发生变化的数据记录中的任一数据记录;通过执行所述第一SQL语句,更新第四数据记录;所述第四数据记录为所述第三数据记录在所述第二数据表中对应的数据记录。
步骤204中,版本库中始终都维护一个版本的数据表,则第三数据表即为与第一标识中唯一关联的第一数据表。
一种可选的实施方式为,根据所述第一数据表与所述第二数据表,生成数据变更文件;所述数据变更文件用于记录所述发生变化的数据记录以及操作类型;所述第二数据表的版本为第一版本,所述第三数据表的版本为第二版本;根据所述数据变更文件记录的所述发生变化的数据记录的操作类型,将所述发生变化的数据记录与所述第一版本对应的第一基线文件中的数据记录进行合并,生成所述第二版本对应的第二基线文件;所述第一基线文件包括所述第二数据表中的数据记录及操作类型;所述第二基线文件包括所述第三数据表中的数据记录及操作类型。
可通过生成基线文件和数据变更文件的方法将每个版本的数据表都保存下来。对于每个版本的数据库,也可以通过合并。
图6为本发明实施例提出的一种数据版本保存方法对应的生成基线文件和数据变更文件的示意图。
通过合并基线文件和操作记录,可自动生成数据变更文件。对基线文件的描述如下:第一次操作第一数据表,基线文件为空。按照上述操作依次完成了开发库和版本库数据操作模型生成、数据提交和版本库记录生成、数据变更文件生成。此时会产生一个基线文件,该文件记录整个流程结束后数据库表中所有记录内容,保存的内容为每行记录的列名、列值集合。
每一个客户端的数据表更改提交,都能直观看到对应的修改;自动合并基线文件和操作记录来生成数据变更文件;以版本和用户为维度,记录数据库数据变化。建立了操作记录模型,可描述数据版本库和开发库中数据的变化关系;通过合并数据基线文件和数据库变化关系中的操作记录来简单高效生成数据库数据文本;在每次版本中,以数据库表和用户为维度记录每次操作。
本发明实施例根据通过对比开发环境中的第一数据表与版本库中对应的第二数据表,并生成指示出发生变化的数据记录及操作类型的操作记录模型,保存第二数据表更新后的第三数据表,并作为与第一标识关联的最新版本的数据表,以数据库中的每张数据表以第一数据库为例,均可按照第二数据表更新为第三数据表后保存的方式,保存当前版本的数据表,合并到版本库。
如图7所示,为本发明实施例提出的一种数据版本保存装置对应的结构示意图。
本发明实施例提供一种数据版本保存装置,该装置包括:
获取模块701,用于获取当前开发环境中的第一数据表,以及所述版本库中与所述第一数据表的第一标识关联的第二数据表;
处理模块702,用于对比所述第一数据表与所述第二数据表的数据记录,确定操作记录模型;所述操作记录模型用于指示所述第一数据表相对所述第二数据表发生变化的数据记录以及操作类型;
用于按照所述操作记录模型指示的所述发生变化的数据记录中每条数据记录的操作类型,对该条数据记录在所述第二数据表中对应的数据记录进行更新,并保存更新后的第三数据表;
以及用于将所述第三数据表作为最新版本的数据表,并与所述第一标识关联。
可选的,所述第二数据表的版本为第一版本,所述第三数据表的版本为第二版本;
所述处理模块702,还用于对比所述第一数据表与所述第二数据表的数据记录,生成数据变更文件;所述数据变更文件用于记录所述发生变化的数据记录以及操作类型;
以及用于根据所述数据变更文件记录的所述发生变化的数据记录的操作类型,将所述发生变化的数据记录与所述第一版本对应的第一基线文件中的数据记录进行合并,生成所述第二版本对应的第二基线文件;所述第一基线文件包括所述第二数据表中的数据记录及操作类型;所述第二基线文件包括所述第三数据表中的数据记录及操作类型。
可选的,所述处理模块702,具体用于:
若所述第一数据表包括第一关键字,且所述第二数据表不包括所述第一关键字,则确定所述第一关键字的操作类型为新增;所述第一关键字为所述第一数据表或者所述第二数据表中任一关键字;
若所述第一数据表不包括所述第一关键字,且所述第二数据表包括所述第一关键字,则确定所述第一关键字的操作类型为删除;
若所述第一数据表和所述第二数据表均包括所述第一关键字,且所述第一关键字在所述第一数据表中关联的第一数据记录,与所述第一关键字在所述第二数据表中关联的第二数据记录不相同,则确定所述第一关键字的操作类型为修改。
可选的,所述处理模块702,具体用于:
根据第三数据记录以及对应的操作类型,生成第一结构化查询语言SQL语句;所述第三数据记录为所述发生变化的数据记录中的任一数据记录;
通过执行所述第一SQL语句,更新第四数据记录;所述第四数据记录为所述第三数据记录在所述第二数据表中对应的数据记录。
可选的,所述处理模块702,还用于对第五数据记录在所述第二数据表中对应的第六数据记录进行更新之前,确定所述第六数据记录是否已发生更新;所述第五数据记录为所述发生变化的数据记录中任一数据记录;
以及用于若所述第六数据记录已发生更新,则发出更新冲突通知;否则,对所述第六数据记录进行更新。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种数据版本保存方法,其特征在于,包括:
获取当前开发环境中的第一数据表,以及所述版本库中与所述第一数据表的第一标识关联的第二数据表;
对比所述第一数据表与所述第二数据表的数据记录,确定操作记录模型;所述操作记录模型用于指示所述第一数据表相对所述第二数据表发生变化的数据记录以及操作类型;
按照所述操作记录模型指示的所述发生变化的数据记录中每条数据记录的操作类型,对该条数据记录在所述第二数据表中对应的数据记录进行更新,并保存更新后的第三数据表;
将所述第三数据表作为最新版本的数据表,并与所述第一标识关联。
2.如权利要求1所述的方法,其特征在于,还包括:
对比所述第一数据表与所述第二数据表的数据记录,生成数据变更文件;所述数据变更文件用于记录所述发生变化的数据记录以及操作类型;
所述第二数据表的版本为第一版本,所述第三数据表的版本为第二版本;
根据所述数据变更文件记录的所述发生变化的数据记录的操作类型,将所述发生变化的数据记录与所述第一版本对应的第一基线文件中的数据记录进行合并,生成所述第二版本对应的第二基线文件;所述第一基线文件包括所述第二数据表中的数据记录及操作类型;所述第二基线文件包括所述第三数据表中的数据记录及操作类型。
3.如权利要求1所述的方法,其特征在于,包括:
若所述第一数据表包括第一关键字,且所述第二数据表不包括所述第一关键字,则确定所述第一关键字的操作类型为新增;所述第一关键字为所述第一数据表或者所述第二数据表中任一关键字;
若所述第一数据表不包括所述第一关键字,且所述第二数据表包括所述第一关键字,则确定所述第一关键字的操作类型为删除;
若所述第一数据表和所述第二数据表均包括所述第一关键字,且所述第一关键字在所述第一数据表中关联的第一数据记录,与所述第一关键字在所述第二数据表中关联的第二数据记录不相同,则确定所述第一关键字的操作类型为修改。
4.如权利要求1所述的方法,其特征在于,包括:
根据第三数据记录以及对应的操作类型,生成第一结构化查询语言SQL语句;所述第三数据记录为所述发生变化的数据记录中的任一数据记录;
通过执行所述第一SQL语句,更新第四数据记录;所述第四数据记录为所述第三数据记录在所述第二数据表中对应的数据记录。
5.如权利要求1-4任一所述的方法,其特征在于,还包括:
对第五数据记录在所述第二数据表中对应的第六数据记录进行更新之前,确定所述第六数据记录是否已发生更新;所述第五数据记录为所述发生变化的数据记录中任一数据记录;
若所述第六数据记录已发生更新,则发出更新冲突通知;否则,对所述第六数据记录进行更新。
6.一种数据版本保存装置,其特征在于,包括:
获取模块,用于获取当前开发环境中的第一数据表,以及所述版本库中与所述第一数据表的第一标识关联的第二数据表;
处理模块,用于对比所述第一数据表与所述第二数据表的数据记录,确定操作记录模型;所述操作记录模型用于指示所述第一数据表相对所述第二数据表发生变化的数据记录以及操作类型;
用于按照所述操作记录模型指示的所述发生变化的数据记录中每条数据记录的操作类型,对该条数据记录在所述第二数据表中对应的数据记录进行更新,并保存更新后的第三数据表;
以及用于将所述第三数据表作为最新版本的数据表,并与所述第一标识关联。
7.如权利要求6所述的装置,其特征在于,所述第二数据表的版本为第一版本,所述第三数据表的版本为第二版本;
所述处理模块,还用于对比所述第一数据表与所述第二数据表的数据记录,生成数据变更文件;所述数据变更文件用于记录所述发生变化的数据记录以及操作类型;
以及用于根据所述数据变更文件记录的所述发生变化的数据记录的操作类型,将所述发生变化的数据记录与所述第一版本对应的第一基线文件中的数据记录进行合并,生成所述第二版本对应的第二基线文件;所述第一基线文件包括所述第二数据表中的数据记录及操作类型;所述第二基线文件包括所述第三数据表中的数据记录及操作类型。
8.如权利要求6所述的装置,其特征在于,所述处理模块,具体用于:
若所述第一数据表包括第一关键字,且所述第二数据表不包括所述第一关键字,则确定所述第一关键字的操作类型为新增;所述第一关键字为所述第一数据表或者所述第二数据表中任一关键字;
若所述第一数据表不包括所述第一关键字,且所述第二数据表包括所述第一关键字,则确定所述第一关键字的操作类型为删除;
若所述第一数据表和所述第二数据表均包括所述第一关键字,且所述第一关键字在所述第一数据表中关联的第一数据记录,与所述第一关键字在所述第二数据表中关联的第二数据记录不相同,则确定所述第一关键字的操作类型为修改。
9.如权利要求6所述的装置,其特征在于,所述处理模块,具体用于:
根据第三数据记录以及对应的操作类型,生成第一结构化查询语言SQL语句;所述第三数据记录为所述发生变化的数据记录中的任一数据记录;
通过执行所述第一SQL语句,更新第四数据记录;所述第四数据记录为所述第三数据记录在所述第二数据表中对应的数据记录。
10.如权利要求6-9任一所述的装置,其特征在于,
所述处理模块,还用于对第五数据记录在所述第二数据表中对应的第六数据记录进行更新之前,确定所述第六数据记录是否已发生更新;所述第五数据记录为所述发生变化的数据记录中任一数据记录;
以及用于若所述第六数据记录已发生更新,则发出更新冲突通知;否则,对所述第六数据记录进行更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811635773.1A CN109739835B (zh) | 2018-12-29 | 2018-12-29 | 一种数据版本保存方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811635773.1A CN109739835B (zh) | 2018-12-29 | 2018-12-29 | 一种数据版本保存方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109739835A true CN109739835A (zh) | 2019-05-10 |
CN109739835B CN109739835B (zh) | 2023-06-06 |
Family
ID=66362398
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811635773.1A Active CN109739835B (zh) | 2018-12-29 | 2018-12-29 | 一种数据版本保存方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109739835B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113535727A (zh) * | 2021-07-19 | 2021-10-22 | 北京数码大方科技股份有限公司 | 信息系统的数据输出方法及数据输出装置、电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120109903A1 (en) * | 2010-10-29 | 2012-05-03 | Microsoft Corporation | Halloween protection in a multi-version database system |
CN107368513A (zh) * | 2017-04-25 | 2017-11-21 | 阿里巴巴集团控股有限公司 | 客户端数据库更新的方法及装置 |
CN107833637A (zh) * | 2017-06-19 | 2018-03-23 | 平安医疗健康管理股份有限公司 | 药品规则记录更新方法、装置、计算机设备及介质 |
CN108255925A (zh) * | 2017-11-10 | 2018-07-06 | 平安普惠企业管理有限公司 | 一种数据表结构变更情况的显示方法及其终端 |
-
2018
- 2018-12-29 CN CN201811635773.1A patent/CN109739835B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120109903A1 (en) * | 2010-10-29 | 2012-05-03 | Microsoft Corporation | Halloween protection in a multi-version database system |
CN107368513A (zh) * | 2017-04-25 | 2017-11-21 | 阿里巴巴集团控股有限公司 | 客户端数据库更新的方法及装置 |
CN107833637A (zh) * | 2017-06-19 | 2018-03-23 | 平安医疗健康管理股份有限公司 | 药品规则记录更新方法、装置、计算机设备及介质 |
CN108255925A (zh) * | 2017-11-10 | 2018-07-06 | 平安普惠企业管理有限公司 | 一种数据表结构变更情况的显示方法及其终端 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113535727A (zh) * | 2021-07-19 | 2021-10-22 | 北京数码大方科技股份有限公司 | 信息系统的数据输出方法及数据输出装置、电子设备 |
CN113535727B (zh) * | 2021-07-19 | 2024-04-09 | 北京数码大方科技股份有限公司 | 信息系统的数据输出方法及数据输出装置、电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109739835B (zh) | 2023-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10089294B2 (en) | Systems and methods for tracking and modifying actions in an action history | |
US9626623B2 (en) | Method of automated discovery of new topics | |
CN110300963A (zh) | 大规模数据储存库中的数据管理系统 | |
CN110442847B (zh) | 基于代码仓库过程管理的代码相似性检测方法及装置 | |
US7853595B2 (en) | Method and apparatus for creating a tool for generating an index for a document | |
CN108829651A (zh) | 一种公文处理的方法、装置、终端设备及存储介质 | |
EP2089814A2 (en) | Database system | |
CN109739835A (zh) | 一种数据版本保存方法及装置 | |
Batini et al. | A survey of data quality issues in cooperative information systems | |
CN104537047B (zh) | 一种基于Lucene的服装基样板检索系统 | |
JP7022472B1 (ja) | データ管理システム、データ管理方法及びデータ管理プログラム | |
JPH08305724A (ja) | 設計支援情報文書管理装置 | |
CN114676155A (zh) | 代码提示信息的确定方法、数据集的确定方法及电子设备 | |
Rahman et al. | Model migration approach for database preservation | |
Bai et al. | Automatic generation of code comments based on comment reuse and program parsing | |
CN105740722B (zh) | 一种数据库敏感数据的伪装方法 | |
Aljarallah | Comparative study of database modeling approaches | |
Prause | Maintaining fine-grained code metadata regardless of moving, copying and merging | |
CN116860227B (zh) | 一种基于大数据etl脚本编排的数据开发系统及方法 | |
Koszela et al. | Concept and assumptions about the temporal graph database | |
KR101020234B1 (ko) | 데이터베이스 응용 프로그램 소스 생성 방법 및 장치 | |
LACÃO | MINING SOFTWARE MODEL REPOSITORIES | |
Mao et al. | MMDBench: A Benchmark for Hybrid Query in Multimodal Database | |
US20180032552A1 (en) | Configurable Hyper-Referenced Associative Object Schema | |
JP2002297603A (ja) | 情報抽出方法および構造化文書管理装置およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |