CN115878589A - 结构化数据的版本管理方法、装置及相关设备 - Google Patents

结构化数据的版本管理方法、装置及相关设备 Download PDF

Info

Publication number
CN115878589A
CN115878589A CN202111154746.4A CN202111154746A CN115878589A CN 115878589 A CN115878589 A CN 115878589A CN 202111154746 A CN202111154746 A CN 202111154746A CN 115878589 A CN115878589 A CN 115878589A
Authority
CN
China
Prior art keywords
version
data
structured data
difference
difference data
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.)
Pending
Application number
CN202111154746.4A
Other languages
English (en)
Inventor
凌云
王坤
温林儒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Cloud Computing Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Cloud Computing Technologies Co Ltd filed Critical Huawei Cloud Computing Technologies Co Ltd
Priority to CN202111154746.4A priority Critical patent/CN115878589A/zh
Priority to PCT/CN2022/115326 priority patent/WO2023051125A1/zh
Publication of CN115878589A publication Critical patent/CN115878589A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例提供一种结构化数据的版本管理方法、装置及相关设备,应用于信息技术IT领域。该方法包括:获取第一版本的结构化数据,结构化数据包含一个或者多个元素的属性以及属性对应的值;根据第一版本的结构化数据和上一个版本的结构化数据,得到关于第一版本的差异数据,该差异数据表征第一版本的结构化数据与上一个版本的结构化数据之间的差异;记录对应所述第一版本的所述差异数据。本申请实施例中,通过增量存储方式,能够记录结构化数据的变更,使得用户可以便捷地查看到不同版本直接的迭代变化。

Description

结构化数据的版本管理方法、装置及相关设备
技术领域
本申请涉及数据库技术领域,尤其涉及结构化数据的版本管理方法、装置及相关设备。
背景技术
数据库的设计部署过程中,随着业务调整、需求变更,通常需要对数据库进行多次修改、版本迭代才能设计完成。因此对于数据库模型的版本进行管理,可以便于回溯修改。但是目前的数据库设计软件,在修改数据库模型结构后,无法提供回溯功能。一些场景中,通过代码仓,可以对数据库模型的脚本文件进行版本管理。但是代码仓只能记录代码、数据的修改,而数据库的各个元素之间的依赖关系往往较为复杂,通过记录脚本文件难以对数据库模型的版本进行回溯,非结构化的文本也不利于用户查看数据库结构的修改,用户体验较差。
因此,如何解决上述问题,是本领域人员正在研究的热点。
发明内容
本申请实施例提供了结构化数据的版本管理方法、装置及相关设备,能够记录结构化数据的变更,使得用户可以便捷地查看到不同版本直接的迭代变化。
第一方面,本申请实施例提供了一种结构化数据的版本管理方法,包括:
获取第一版本的结构化数据,所述结构化数据包含元素的属性以及所述属性对应的值;
根据所述第一版本的结构化数据和上一个版本的结构化数据,得到关于所述第一版本的差异数据,所述关于第一版本的差异数据表征所述第一版本的结构化数据与所述上一个版本的结构化数据之间的差异,所述关于第一版本的差异数据包含所述第一版本的标识、存在变更的元素的标识以及变更操作类型;
记录关于所述第一版本的所述差异数据。
可选的,上述方法可以应用于服务器,由服务器或者服务器内部的部件(例如芯片、软件模块或集成电路)来执行。或者上述方法可以应用于数据库设计***,例如由数据库设计***的服务端来执行。
本申请实施例中,通过增量存储方式,来记录不同版本的结构化数据的变更,实现了对于结构化数据的变更记录。一方面,用户可以便捷地查看到不同版本直接的迭代变化,方便用户进行版本回溯,满足了对结构化数据变更的可视化需求。另一方面,服务器记录不同版本地结构化数据时,无需记录整个结构化数据,降低了记录量。
此外,通过本申请实施例可以便捷、高效地实现横向回溯和纵向回溯,在横向回溯某一版本时,可以根据差异数据便捷地计算该版本的元素,查询速度快、效率高。通过本申请实施例,根据元素的标识以及差异数据,即可了解该解元素的生命周期,查询速度快、效率高。
在第一方面的一种可能的实施方式中,所述结构化数据包含数据库模型数据、JSON数据、或可扩展标记语言(extensible markup language,XML)数据中的一项或者多项。
其中,数据库模型数据可以包含表、字段、视图等元素,上述元素可以分别对应一个或者多个属性。通过本申请实施例的方法,可以对数据库模型数据进行增量存储,具有数据存储容量少,存储速度快,查询速度快等优点。
JavaScript对象简谱((JavaScript object notation,JSON)数据,通常可以用于表示一个或者多个对象或者对象数组。在JSON数据中,通常来说,对象由“花括号”括起来部分构成,每个对象通常包含一个或者多个属性以及属性对应的值构成,不同属性之间通过“,”分隔。应理解,JSON数据中的对象可以看作元素。
XML数据中可以包含一个或者多个节点。该节点可以看作XML数据的元素。
在第一方面的又一种可能的实施方式中,所述结构化数据包含一个或者多个模块;所述根据第一版本的结构化数据和上一个版本的结构化数据,得到关于所述第一版本的差异数据,包括:
将所述第一版本的结构化数据和所述上一个版本的结构化数据,按模块进行比较,得到所述关于所述第一版本的差异数据,所述差异数据包含对应所述一个或者多个模块的差异数据。
可选的,在进行去重时,可以按照版本从新到旧的顺序,进行去重操作,得到当前版本的全量元素。
可选的,进行去重操作时,保留某一ID的元素的最新版本的差异数据、以及去掉操作类型包含“删除”(即:“DROP”)的元素。
在第一方面的又一种可能的实施方式中,所述方法还包括:
接收来自用户设备的第一请求信息,所述第一请求信息用于请求所述第一版本的结构化数据;
根据关于所述第一版本的差异数据以及关于所述第一版本之前的版本的差异数据,得到所述第一版本的结构化数据。
在第一方面的又一种可能的实施方式中,所述方法还包括:
接收来自用户设备的第二请求信息,所述第二请求信息用于请求第一元素的变更记录,所述第一元素属于上述元素;
根据关于所述第一版本的差异数据、关于所述第一版本之前的版本的差异数据以及所述第一元素的信息,得到所述第一元素的变更记录。
在第一方面的又一种可能的实施方式中,所述变更操作类型包含添加、删除或更新等中的一项或者多项。
在第一方面的又一种可能的实施方式中,所述结构化数据包含数据库模型数据、JASON数据、或可扩展标记语言XML数据中的一项或者多项。
在第一方面的又一种可能的实施方式中,所述结构化数据包含数据库模型数据,所述元素包含属于以下元素种类中的一种或者多种:表、字段、索引、视图、或关系。
第二方面,本申请实施例提供一种版本管理装置,该版本管理装置包括获取单元和处理单元,该版本管理装置用于实现第一方面或第一方面任一种可能的实施方式所描述的方法。
在第二方面的一种可能的实施方式中,所述获取单元,用于获取第一版本的结构化数据,所述结构化数据包含元素的属性以及所述属性对应的值;
所述处理单元,用于根据所述第一版本的结构化数据和上一个版本的结构化数据,得到关于所述第一版本的差异数据,所述关于第一版本的差异数据表征所述第一版本的结构化数据与所述上一个版本的结构化数据之间的差异,所述关于第一版本的差异数据包含所述第一版本的标识、存在变更的元素的标识以及变更操作类型;
所述处理单元,还用于记录对应所述第一版本的所述差异数据。
在第二方面的又一种可能的实施方式中,所述结构化数据包含一个或者多个模块,每一个模块包含部分元素的属性和所述部分元素的属性对应的值;
所述处理单元,还用于:
将所述第一版本的结构化数据和所述上一个版本的结构化数据,按模块进行比较,得到所述关于所述第一版本的差异数据,所述差异数据包含对应所述一个或者多个模块的差异数据。
可选的,在进行去重时,处理单元可以按照版本从新到旧的顺序,进行去重操作,得到当前版本的全量元素。
可选的,处理单元进行去重操作时,可以保留某一ID的元素的最新版本的差异数据、以及去掉操作类型包含“删除”(即:“DROP”)的元素。
在第二方面的又一种可能的实施方式中,所述获取单元,还用于接收来自用户设备的第一请求信息,所述第一请求信息用于请求所述第一版本的结构化数据;
所述处理单元,还用于根据关于所述第一版本的差异数据以及关于所述第一版本之前的版本的差异数据,得到所述第一版本的结构化数据。
在第二方面的又一种可能的实施方式中,所述获取单元,还用于接收来自用户设备的第二请求信息,所述第二请求信息用于请求第一元素的变更记录,所述第一元素属于所述一个或者多个元素;
所述处理单元,还用于根据关于所述第一版本的差异数据、关于所述第一版本之前的版本的差异数据以及所述第一元素的信息,得到所述第一元素的变更记录。
在第二方面的又一种可能的实施方式中,所述变更操作类型包含添加、删除或更新等中的一项或者多项。
在第二方面的又一种可能的实施方式中,所述结构化数据包含数据库模型数据、JSON数据、或可扩展标记语言XML数据中的一项或者多项。
在第二方面的又一种可能的实施方式中,所述结构化数据包含数据库模型数据,所述一个或者多个元素包含属于以下元素种类中的一种或者多种:表、字段、索引、视图、或关系。
第三方面,本申请实施例提供一种计算设备,该计算设备包括处理器和存储器;存储器中存储有计算机程序;处理器执行计算机程序时,计算设备执行前述第一至四方面任一项所描述的方法。
需要说明的是,上述第十一方面所描述的数据传输装置所包含的处理器,可以是专门用于执行这些方法的处理器(便于区别称为专用处理器),也可以是通过调用计算机程序来执行这些方法的处理器,例如通用处理器。可选的,至少一个处理器还可以既包括专用处理器也包括通用处理器。
可选的,上述计算机程序可以存在存储器中。示例性的,存储器可以为非瞬时性(non-transitory)存储器,例如只读存储器(Read Only Memory,ROM),其可以与处理器集成在同一块器件上,也可以分别设置在不同的器件上,本申请实施例对存储器的类型以及存储器与处理器的设置方式不做限定。
在一种可能的实施方式中,上述至少一个存储器位于上述计算设备之外。
在又一种可能的实施方式中,上述至少一个存储器位于上述计算设备之内。
在又一种可能的实施方式之中,上述至少一个存储器的部分存储器位于上述计算设备之内,另一部分存储器位于上述计算设备之外。
本申请中,处理器和存储器还可能集成于一个器件中,即处理器和存储器还可以被集成在一起。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在至少一个处理器上运行时,实现前述第一至四方面任一项所描述的方法。
第五方面,本申请提供了一种计算机程序产品,计算机程序产品包括计算机指令,当所述指令在至少一个处理器上运行时,实现前述第一至四方面任一项所描述的方法。
可选的,该计算机程序产品可以为一个软件安装包,在需要使用前述方法的情况下,可以下载该计算机程序产品并在计算设备上执行该计算机程序产品。
本申请第二至第五方面所提供的技术方案,其有益效果可以参考第一方面的技术方案的有益效果,此处不再赘述。
附图说明
下面将对实施例描述中所需要使用的附图作简单的介绍。
图1是本申请实施例提供的一种数据库模型的变更示意图;
图2是本申请实施例提供的一种数据库设计***的架构示意图;
图3是本申请实施例提供的一种版本管理方法的流程示意图;
图4是本申请实施例提供的一种JSON数据的示意图;
图5是本申请实施例提供的一些可能的差异数据的结构示意图;
图6是本申请实施例提供的一种多个版本的结构化数据的示意图;
图7是本申请实施例提供的一种关于多个版本的差异数据的示意图;
图8是本申请实施例提供的又一种版本管理方法的流程示意图;
图9是本申请实施例提供的一种多个版本的信息的示意图;
图10是本申请实施例提供的又一种版本管理方法的流程示意图;
图11是本申请实施例提供的一种版本管理装置的结构示意图;
图12是本申请实施例提供的一种计算设备的结构示意图。
具体实施方式
下面结合附图对本申请实施例进行详细介绍。
为了便于理解,以下示意性地给出了部分与本申请实施例相关概念的说明以供参考。
1.数据库、表、字段
数据库(database,DB)是按照数据结构来组织、记录和管理数据的仓库,是一个记录在计算机内的有组织的、可共享的大量数据的集合。
表可以记录特定类型的数据,例如学生信息、院系目录等。每个表都有一个表ID、表名、注释等属性。
表包括一个或者多个列(column),每列是表中的一个字段,每列中记录着表中某部分的信息。例如数据库中可以包含表名为“学生”的表,一个列记录学生的学号(studentidentification,或称为,学生ID),一个列记录学生的名字(name)。字段可以包含字段名称、字段类型等属性。
其中,数据库的库、表、字段等都可以看作是数据库中的元素。当然,数据库中的元素还可以包含索引、视图、关系等元素,此处不再一一介绍。
2.数据库设计***
数据库设计***是一种可视化的数据库设计与管理的工具,用于设计、建立、使用和维护数据库。用户可以在数据库设计***中创建(或编辑)包括元素以及元素之间关联关系的设计视图,数据库设计***能够记录用户创建(或编辑)的数据库设计视图,并可以建立数据库的模型(或者还包括记录数据库的数据)。
应理解,本申请中的用户可以包含数据库设计***的用户,包括数据库设计***的使用者、管理者、设计者或开发者等。
3.版本管理、横向回溯、纵向回溯
版本管理是指对开发过程中代码、文档、模型设计等数据变更的管理,是开发迭代中过程管理的核心思想之一。
在管理的多个版本中,随意选取任意一个历史版本,获取该版本的全量数据,为横向回溯。
在被管理的多个对象(可以是任一版本中的对象)中,随意选取某一个对象,获取对象(及该对象的子对象)在整个版本管理生命周期内的变更情况,为纵向回溯。
上述对概念的示例性说明可以应用在下文的实施例中。
结构化的数据中包含元素的属性以及属性对应的值,通过基于文本、字符串等的版本管理方法难以记录结构化数据的变更,用户对结构化数据进行迭代时,难以进行回溯,体验较差。例如,数据库模型数据是结构化的数据,一个数据库(或数据库模型)中存在一个或多个元素,元素又可以包含属性、或子属性等,甚至元素与元素之间还有关联关系。若基于文本、字符串等的版本管理方法进行版本管理,不同版本的数据库(或数据库模型)进行差异对比时,看到的将是错乱的文本块,难以直观理解其差异,体验较差。
此外,如JSON数据、XML数据等结构化的数据都面临版本管理的问题。
请参见图1,如图1所示是本申请实施例提供的一种可能的数据库模型的示意图。如图1的(a)部分所示有所示为学生数据库模型,在一个设计阶段,学生数据库中添加了学生表(student)和教师表(teacher),分别对应学生实体和教师实体。其中,学生表(学生实体)可以包含以下字段(属性):学号工号(sutdent_ID)、班级号(class_ID)、开始日期(date),教师表(教师实体)可以包含以下字段(属性):教师工号(teacher_ID)、姓名(teacher_name)、性别(sex)、和入职时间(hiredate)。
在数据库设计过程中,对于数据库的需求可能随时会变更,因此会对数据库模型进行修改。例如,如图1的(b)部分所示,当前设计阶段,需要新增加一个班级实体,使得学生可以查看自己班级对应的教师。班级表(班级实体)可以包含以下字段(属性):班级号(class_ID)、班级名(class_name)、教师姓名(teacher_name)。其中,班级表中的班级号与学生表中的学生号关联,班级表中的教师名称与教师表中的姓名关联。
再如,在数据库中更新表的属性(例如修改表名、或注释等)、更新字段的属性(例如修改字段名称、修改字段类型)、更新视图、更新函数等。
如上所示的对数据库模型的变更可能会在数据库设计过程中发生多次,因此,需要对数据库模型的版本进行管理,便于回溯修改。但是目前的数据库设计软件,在修改数据库模型结构后,无法提供回溯功能。即便通过文本对比记录修改,非结构化的文本也不利于用户查看数据库结构的修改,用户体验较差。
为了解决上述问题,本申请实施例提供一种结构化数据的版本管理方法、装置及相关设备,能够记录结构化数据的变更,使得用户可以便捷地查看到不同版本直接的迭代变化。
以下以结构化数据为数据库模型数据为例,对本身申请实施例的架构进行描述。本领域技术人员应当理解,对于其他形式的结构化数据,其版本管理的***架构可以参考下面的结构。
本申请实施例提供的版本管理方法可以基于数据库设计***来实现,也可以基于其他可以设计、创建、编辑数据库模型数据的***、设备来实现。其中,数据库设计***可以包含硬件模块、或软件模块(如应用程序、组件等)、或硬件模块与软件模块的组合等。
一种可能的设计中,数据库设计***可以包括客户端和服务端。客户端可以用于呈现界面、选择框、输入框等与用户交互的组件,服务端用于向客户端提供数据库模型的结构化数据、或响应用户的请求等。
请参见图2,图2是本申请实施例提供的一种可能的数据库设计***的架构示意图。如图2所示的***包括至少一个用户设备201和至少一个服务器202。
其中,用户设备201是具有数据处理、数据收发能力的电子设备,可以实现前述客户端的功能。例如可以包括手持终端、可穿戴设备、车辆、机器人等独立设备,也可以是包含在独立设备中的部件(例如芯片或集成电路)。示例性地,当终端装置为手持终端时,可以是手机(mobile phone)、平板电脑(pad)、电脑(如笔记本电脑、掌上电脑等)等。
服务器202是具有数据处理、数据收发能力的装置,可以实现前述服务端的功能。应理解,此处便于描述称为服务器,其具体形式可以为实体装置如服务器、或主机等,也可以是虚拟装置如虚拟机、或容器等。可选的,服务器202可以独立的部署在一个设备中,也可以分布式的部署在多个设备上。
服务器202可以接收创建数据库的请求、修改数据库的请求等,在变更数据库时,服务器可以通过该次修改的数据库模型数据与当前记录的数据库模型数据,记录两个版本的差异数据,实现对结构化数据的变更的管理。而且,无需每次记录整个数据库,减少存储量。
如此,通过记录差异数据,在横向回溯时,可以根据一个或者多个版本的差异数据得到某一版本的数据库;在纵向回溯时,通过回溯对某一元素的创建、修改、或删除等操作,可以纵向查看某一元素的生命周期。用户可以便捷地横向回溯和纵向回溯,提升用户的使用体验。
应理解,上述服务器202与用户设备201之间通信的链路可以是有线链路、无线链路或者有线链路与无线链路的组合等方式。进一步可选的,通信还可以通过一种或者多种网络技术实现。本申请对于服务器与用户设备201之间的通信方式不做限定。
在一种可能的设计中,如图2所示的服务器202可以为云平台。其中,云平台包含云服务提供商提供的大量基础资源(包括但不限于计算资源、记录资源、或网络资源等),其中计算资源可以是大量的计算设备(例如服务器、虚拟机)。
在一种可能的实施场景中,上述数据库设计***能够由云服务提供商在云平台抽象成一种数据库设计的云服务提供给用户。例如,用户购买数据库设计云服务之后,云平台响应于用户触发的数据库设计***实例创建操作,在云服务提供商提供的资源上创建数据库设计***实例,然后向用户提供数据库模型的版本管理服务。相应的,用户所使用的用户设备可以呈现界面、使用版本管理服务。
其中,购买数据库设计云服务的方式可以包括:先预充值再根据最终资源的实际使用情况进行结算,或者,按使用云服务的时间或者按照购买的云服务的功能或资源结算。
需要说明的是,在本申请实施例中,云平台可以是中心云的云平台、边缘云的云平台或包括中心云和边缘云的云平台,本申请实施例对其不做具体限定。并且,当云平台为包括中心云和边缘云的云平台时,该数据库设计***可以部分部署在边缘云的云平台中,部分部署在中心云的云平台中。
下面对本申请实施例的方法进行详细介绍。
请参见图3,图3是本申请实施例提供的一种版本管理方法的流程示意图。可选的,该方法可以应用于前述的版本管理***,例如图2所示的数据库设计***。
如图3所示的版本管理方法至少包括步骤S301至步骤S302。应理解,本申请为了方便描述,故通过S301至S302这一顺序进行描述,并不旨在限定一定通过上述顺序进行执行。本申请实施例对于上述一个或多个步骤的执行的先后顺序、执行的时间、执行的次数等不做限定。步骤S301至步骤S302具体如下:
步骤S301:服务器获取第一版本的结构化数据。
其中,服务器是具有数据处理功能的装置。此处为了便于描述故称为服务器,并不限定本方法一定通过服务器来实现,例如还可以通过虚拟机、或主机等实现。
其中,结构化数据是具有相对固定的模式的数据。结构化数据包含元素的属性以及包含属性对应的值。结构化数据中的属性可以是一个,也可以是多个。部分场景下,某一版本的机构化数据还可以是空数据,即,不包含元素的属性。
结构化数据中的属性与一个或者多个元素(或称为对象)相关,该属性为结构化数据所指示的一个或者多个元素(或称为对象)的属性。例如,结构化数据中的属性可以包含表的名称、表的注释、字段的名称、字段的字段类型等属性,其中的表、字段等即为元素(或称为对象)。
一种设计中,结构化数据可以通过键值(key-value)来获取相应的信息。
可选的,结构化数据的种类可以属于数据库模型数据、JavaScript对象简谱((JavaScript object notation,JSON)数据、或可扩展标记语言(extensible markuplanguage,XML)数据中的一项或者多项。
其中,数据库模型数据可以包含表、字段、视图等元素,上述元素可以分别对应一个或者多个属性。通过本申请实施例的方法,可以对数据库模型数据进行增量存储,具有数据存储容量少,存储速度快,查询速度快等优点。JSON数据,通常可以用于表示一个或者多个对象或者对象数组。在JSON数据中,通常来说,对象由“花括号”括起来部分构成,每个对象通常包含一个或者多个属性以及属性对应的值构成,不同属性之间通过“,”分隔。应理解,JSON数据中的对象可以看作元素。XML数据中可以包含一个或者多个节点。该节点可以看作XML数据的元素。
例如,请参见图1的(b)部分所示,数据库模型数据包含多个表,每一个表对应一种实体。表表可以包含多个属性,例如表名、字段等一个或者多个属性。表中的字段也可以看作一种元素,字段也可以包含多个属性,例如字段名称、数据格式、字段ID等属性。
再如,请参见图4,图4是本申请实施例提供的一种可能的JSON数据的结构示意图。可以看出,JSON格式中一个对象可以包含多个属性,例如,表名为“tb_teacher”的这个对象可以包含表名、注释、表ID、字段等多个属性。可选的,字段属性的值可以是包含多个对象的数组,数组中的每一个对象又分别再包含多个属性。具体不再一一介绍。
可选的,服务器可以接收来自其他设备的第一版本的结构化数据,从而获取第一版本的结构化数据。例如,用户可以在用户设备中创建、编辑或删除结构化数据中的一个或者多个元素、或者编辑元素的属性等,从而得到不同版本的结构化数据。用户在用户设备中保存或者提交第一版本的结构化数据,相应的,服务器可以接收来自用户设备的第一版本的结构化数据。
或者可选的,服务器可以自己生成第一版本的结构化数据。例如,用户可以通过指示信息指示其对结构化数据的修改,服务器基于原本的结构化数据和指示信息,生成第一版本的结构化数据。
步骤S302:服务器根据第一版本的结构化数据和上一个版本的结构化数据,得到关于所述第一版本的差异数据。
其中,所述上一个版本指服务器中记录的第一版本的之前的一个版本。而第一版本的差异数据表征所述第一版本的结构化数据与所述上一个版本的结构化数据之间的差异。
关于第一版本的差异数据包含所述第一版本的标识、存在变更的元素的标识、以及变更操作类型。其中,第一版本的标识也可以称为版本号,或版本信息。例如,第一版本可以是第二次修改该结构化数据,则第一版本的标识可以为“版本(version,或ver.)2”。存在变更的元素例如可以是如图1所示的表、或字段等,或者例如图4所示的表名为“tb_teacher”对象等。元素的标识用于指示元素,例如,可以包含元素ID、编号等中一项或者多项。变更操作类型包含添加、删除、或更新等中的一个或者多个操作类型。进一步的,还可以包含增加、删除或者修改元素对应的属性。
以图1为例,相比上一个版本,用户在第一版本中增加了班级表,则差异数据中包含第一版本的版本号、班级表的ID、变更的操作(即增加)。进一步的,用户在第一版本中增加了班级表的字段,即:班级号、班级名和教师姓名字段,则差异数据中还包含第一版本的版本号、以及班级号、班级名和教师姓名的ID、变更的操作(即:增加)。
为了便于理解,下面例举一种可能的第一版本的差异数据。请参见图5,图5是本申请实施例提供的一些可能的差异数据的结构示意图。请参见图5的(a)部分,差异数据包含版本标识(即:版本为“2”)、存在更改的元素的标识(即表ID为“E03”)、差异类型(即ACTION为“ADD”)。可选的,差异数据中还包含班级表的一个或者多个属性,例如名称、或注释等。
类似的,请参见图5的(b)部分所示,差异数据包含版本的标识、存在更改的元素的标识(即:字段ID分别为“E08、E09、E10”)、差异类型(即:ACTION为“ADD”)。可选的,差异数据中还包含上述元素的一个或者多个属性,例如字段名、或字段类型等。
可选的,结构化数据可以包含一个或者多个模块,每个模块包含结构化数据中的部分数据。服务器得到差异数据时,差异数据可以包含对应该一个或者多个模块的差异数据。
一种设计中,服务器将第一版本的结构化数据划分为一个或者多个模块。而上一个版本的结构化数据也包含多个模块。服务器将第一版本的结构化数据和当前版本的结构化数据,按模块进行比较,得到差异数据,差异数据包含对应一个或者多个模块的差异数据。
示例性地,如图1的(b)部分所示的结构化数据可以包含两个模块的数据(便于描述分别称为第一模块和第二模块)。其中,第一模块包含表相关的属性,例如学生表的属性(如表ID、表名、或注释等属性)、教师表的属性等。第二模块包含字段相关的属性,例如,教师工号字段相关的属性(如字段ID、字段名称、或字段类型等属性)、教师工号相关的属性等。而差异数据中包含对应第一模块的差异数据,例如图5的(a)部分。差异数据还包含对应第二模块的差异数据,例如图5的(b)部分。
一种可能的实现方式中,模块可以是按照层级划分得到的。例如,上述一个或者多个模块中的每个模块对应结构化数据的一个(或者多个)层级。例如,数据库模型数据中表和字段分别为两个层级,因此,如图1的(b)部分所示的数据库模型数据可以划分得到两个模块。
又一种可能的实现方式中,模块可以是按照数组的层级划分得到的。例如,如图4所示的数据,其中表ID为E01的对象属于一个数组中的对象,因此属于一个模块。而表ID为E01的对象的字段属性的取值为另一个数组,因此可以将字段属性作为另一个模块。
可选的,上一个版本的结构化数据可以是根据关于第一版本之前的版本的差异数据得到的。
可选的,服务器在比较得到差异数据时,可以按照元素的标识进行比较,确定存在更改的元素的标识以及差异类型。例如,上一个版本的结构化版本数据中包含元素1的ID,但是第一版本的结构化数据中不包含元素1的ID,则元素1在第一版本对应的操作类型为删除(即:DROP)。类似的,上一个版本的结构化版本数据中不包含元素2的ID,但是第一版本的结构化数据包含元素2的ID,则元素2在第一版本对应的操作类型为新增(即:ADD)。
类似的,在上一个版本的结构化数据包含元素3的ID,而第一版本也包含元素3的ID,此时可以比较元素3对应的属性。若元素3在两个版本中存在不一致的属性,则元素3在第一版本对应的操作类型为修改(即:CHANGE);若元素3在两个版本中不存在不一致的属性,则元素3不存在更改,相应的,差异数据中不包含元素3对应的标识。
可选的,如图3所示的版本管理方法还包括步骤S303,具体如下:
步骤S303:服务器记录对应所述第一版本的所述差异数据。
例如,服务器记录该第一版本的差异数据。或者,服务器将关于第一版本的差异数据添加到总差异数据中,所述总差异数据包含关于一个或者多个版本的差异数据。
示例性的,请参见图6和图7,图6是本申请实施例提供的一种可能的多个版本的结构化数据的示意图,图7是本申请实施例提供的一种可能的关于多个版本的差异数据的示意图。如图6的(1)部分所示,在版本1的结构化数据中新增了教师表和学生表,差异部分如区域601所示。而图7所示的差异数据中,关于版本1的差异数据包含版本1的标识、教师表和学生表的标识(分别为E01、E02)、差异类型以及教师表和学生表的属性。
如图6的(2)部分所示,在版本2的结构化数据中将教师表的注释从“教师”变更为“教师表”,版本2与版本1的差异部分如区域602所示。而图7所示的差异数据中,关于版本2的差异数据包含版本2的标识、教师表的标识(即:E01)、差异类型(即:CHANGE)以及教师表的属性。
如图6的(3)部分所示,在版本3的结构化数据中将学生表的注释从“学生”变更为“学生表”,版本3与版本2的差异部分如区域603所示。而图7所示的差异数据中,关于版本3的差异数据包含版本3的标识、学生表的标识(即:E01)、差异类型(即:CHANGE)以及学生表的属性。
如图6的(4)部分所示,在版本4的结构化数据中,包含以下两个差异部分:①将教师表的表名从“teacher”变更为“db_teacher”,如区域604所示;②删除学生表,如区域605所示。而图7所示的差异数据中,关于版本4的差异数据包含版本4的标识、教师表和学生表的标识(分别为E01、E02)、差异类型以及教师表和学生表的属性。
类似的,如图6的(5)部分所示,在版本5的结构化数据中新增了班级表,版本5与版本5的差异部分如区域606所示。而图7所示的差异数据中,关于版本5的差异数据包含版本4的标识、班级表的标识(分别为E03)、差异类型以及班级表的属性。
应理解,图6和图7以表这一模块为例进行说明,并不旨在限定本方案仅用于表,对于字段等其他元素等同样适用。
可选的,在第一版本为第一个版本的结构化数据时,上一个版本数据可以是默认数据或空白数据。进一步可选的,服务器可以通过预先配置、预先设定、或接收用户输入等方式得到该默认数据。
在图3所示的实施例中,服务器可以通过增量存储方式,来记录不同版本的结构化数据的变更,实现了对于结构化数据的变更记录。一方面,用户可以便捷地查看到不同版本直接的迭代变化,方便用户进行版本回溯,满足了对结构化数据变更的可视化需求。另一方面,服务器记录不同版本地结构化数据时,无需记录整个结构化数据,降低了记录量。
一种可能的设计中,服务器可以基于上述差异数据,满足用户的横向回溯需求。请参见图8,图8是本申请实施例提供的又一种可能的版本方法的流程示意图。可选的,该方法可以应用图2所示的数据库设计***。应理解,本申请为了方便描述,故通过图8所示的顺序进行描述,并不旨在限定一定通过上述顺序进行执行。对于上述一个或多个步骤的执行的先后顺序、执行的时间、执行的次数等不做限定。
可选的,如图8所示方法实施例可以包含步骤S801-步骤S803中的部分或者全部步骤。步骤S801-步骤S803的相关描述可以参考步骤S301-步骤S303。此处不在赘述。
可选的,图8所示的方法实施例可以包含步骤S804,具体如下:
步骤S804:服务器接收来自用户设备的第一请求信息。其中,第一请求信息用于请求所述第一版本的结构化数据。
例如,用户设备在打开某一界面时,默认获取最新版本的结构化数据,而第一版本是最新版本。这种情况下,用户设备在打开某一界面时,可以向服务器发送第一请求信息,从而请求查看第一版本的结构化数据。相应的,服务器接收来自用户设备的第一请求信息。
再如,用户设备可以向用户展示一个或者多个版本的信息,用户设备接收用户输入的针对第一版本的选择操作,从而向服务器发送第一请求信息。相应的,服务器接收来自用户设备的第一请求信息。
示例性地,请参见图9,图9是本申请实施例提供的一种可能的多个版本的信息的示意图。区域901展示了3个版本的信息,分别为版本5、版本4、版本3。“提交者”为提交该版本的结构化数据的用户。“创建时间”说明提交该版本的结构化数据的时间、或者形成该版本结构化数据的时间。“操作”用于指示可对该版本的结构化数据执行的操作。例如,区域902所示的组件用于回退版本、或者用于指示呈现回退版本的界面。例如,当前版本为版本5,用户点击版本3对应的回退按钮,可以回退到版本3。区域903所示的组件用于查看一个或多个版本或者指示呈现查看指定版本的结构化数据。例如,点击区域903所示的组件,可以呈现版本5的结构化数据。区域904所示的组件,用于查看指定版本的流程信息,例如查看版本5的审核流程信息。其中,审核流程信息可以包含审核人、变更差异可视化、或数据库模式定义语言(Data Definition Language。DDL)等中的一项或者多项。
在如图9所示的界面可以由用户设备呈现。用户可以根据自身需求选择某一版本,服务用户设备接收用户输入的针对第一版本的选择操作,该操作指示查看第一版本的结构化数据。如此,用户设备则向服务器发送第一请求信息,请求第一版本的结构化数据。
图8所示的实施例至少包含步骤S805,具体如下:
步骤S805:服务器根据关于第一版本的差异数据、以及关于第一版本之前的版本的差异数据,得到第一版本的结构化数据。
其中,由于差异数据可以反映当前版本与上一个版本之间的差异。因此,第一版本的差异数据、以及关于第一版本之前的版本的差异数据,可以得到第一版本的结构化数据。
一种设计中,服务器在总差异数据中,确定关于第一版本的差异数据、以及关于第一版本之前的版本的差异数据。服务器按照从新到旧的顺序,进行去重操作,得到当前版本的全量元素。
可选的,进行去重操作时,具体可以是保留某一ID的元素的最新版本的差异数据、以及去掉操作类型包含“删除”(或“DROP”)的元素。
例如,以图7所示的数据为总差异数据为例,若服务器需得到版本5的结构化数据。服务器先确定关于版本5的差异数据,以及关于版本4、版本3、版本2和版本1的差异数据,按照版本从新到旧,进行去重操作。例如,关于版本5的差异数据中(第8行),ID为“E03”的元素,则保留作为版本5的结构化数据中的元素。再如,关于版本4的差异数据中(第7行),ID为“E02”的元素,由于其操作类型包含“DROP”,因此版本5的结构化数据中不包含ID为“E02”的元素。再如,关于版本4的差异数据中(第6行),ID为“E01”的元素,最新版本的差异数据是关于版本4,因此版本5的结构化数据中包含ID为“E01”的元素。ID为“E01”的元素,其在版本5中的属性和值为:表名是“db_teacher”,注释是“教师表”。
类似的,以图7所示的数据为总差异数据为例,若服务器需得到版本1的结构化数据。服务器先确定关于版本1的差异数据,而版本1之前没有对应的版本,因此服务器根据版本1的差异数据,得到版本1的结构化数据。例如,图7的第1行所示ID为“E01”的元素,保留作为版本1的结构化数据中的元素;如图7的第2行所示ID为“E02”的元素,也保留作为版本1的结构化数据中的元素。
可选的,服务器可以向用户设备发送该第一版本的结构化数据。相应的,用户设备可以接收第一版本的结构化数据,从而呈现该第一版本的结构化数据。
一种可能的设计中,服务器可以根据关于第一版本之前的版本的差异数据,得到上一个版本的结构化数据。进一步的,服务器可以根据关于第一版本的差异数据和所述上一个版本的结构化数据,得到第一版本的结构化数据。
在图8所示的实施例中,服务器可以根据一个或者多个版本的差异数据,得到不同版本的结构化数据。服务器可以响应需求提供不同版本对应的结构化数据,满足对不同版本的结构化数据的查看需求,提升了用户的使用体验。
一种可能的设计中,服务器可以基于上述差异数据,满足用户的纵向回溯需求。请参见图10,图10是本申请实施例提供的又一种可能的版本方法的流程示意图。可选的,该方法可以应用图2所示的数据库设计***。应理解,本申请为了方便描述,故通过图10所示的顺序进行描述,并不旨在限定一定通过上述顺序进行执行。对于上述一个或多个步骤的执行的先后顺序、执行的时间、执行的次数等不做限定。
可选的,如图10所示方法实施例可以包含步骤S1001-步骤S1003中的部分或者全部步骤。步骤S1001-步骤S1003的相关描述可以参考步骤S301-步骤S303。此处不在赘述。
可选的,图10所示的方法实施例可以包含步骤S1004,具体如下:
步骤S1004:服务器接收来自用户设备的第二请求信息。其中,第二请求信息用于请求第一元素的变更记录。或者可选的,变更记录也可以称为第一元素的生命周期、或历史信息等。
其中,第一元素是结构化数据所指示的一个或者多个元素中的至少一个元素。
例如,以数据库模型数据为例,数据库模型数据中可以包含一个或者多个元素的属性,例如包含一个或者多个表的属性,再如,包含一个或者多个字段的属性。用户可以查看其中的某一个(或者某几个)元素的变更记录。
该变更记录可以查看该元素经历的创建、修改等记录。
图10所示的实施例至少包含步骤S1005,具体如下:
步骤S1005:服务器根据关于所述第一版本的差异数据、关于所述第一版本之前的版本的差异数据以及所述第一元素的信息,得到所述第一元素的变更记录。
示例性地,以差异数据为如图7所示的差异数据为例,若服务器需得到ID为“E01”的元素的变更记录,则可以在图7所示的差异数据,确定ID为“E01”的元素对应的差异数据,具体可以为第2行、第3行、第5行对应的数据。可以看出,“E01”的元素对应的差异数据反映了创建、修改过程。
可选的,服务器可以将第一元素对应的差异数据,作为第一元素的变更记录。或者可选的,服务器可以对第一元素对应的差异数据进行进一步处理,得到第一元素的变更记录。
可选的,服务器可以向用户反馈第一元素的变更记录。例如,服务器可以向用户设备发送第一元素的变更记录,相应的,用户设备接收第一元素的变更记录,从而呈现该第一元素的变更记录。
在图10所示的实施例中,服务器根据差异数据可以实现对元素的纵向回溯,从而使得用户可以了解表A是在哪个版本进行创建、在哪个版本进行了更新,直观地获取元素的生命周期,提升了用户体验。
需要说明的是,上述的多个实施例可以在不互斥的情况下进行结合,本申请对于结合的情况不再一一示例。
上述详细阐述了本申请实施例的方法,下面提供本申请实施例的装置。
请参见图11,图11是本申请实施例提供的一种版本管理装置110的结构示意图,该版本管理装置110可以为服务器或用户设备,也可以为服务器或用户设备中的一个器件,例如芯片、软件模块、集成电路等。该版本管理装置110用于实现前述的版本管理方法,例如图3、图8或图10所示实施例中的版本管理方法。
一种可能的实施方式中,该版本管理装置110可以包括获取单元1101和处理单元1102。
一种可能的设计中,上述版本管理装置110可以为前述实施例中的服务器。
在一种可能的实施方式中,所述获取单元1101,用于获取第一版本的结构化数据,所述结构化数据包含元素的属性以及所述属性对应的值;
所述处理单元1102,用于根据所述第一版本的结构化数据和上一个版本的结构化数据,得到关于所述第一版本的差异数据,所述关于第一版本的差异数据表征所述第一版本的结构化数据与所述上一个版本的结构化数据之间的差异,所述关于第一版本的差异数据包含所述第一版本的标识、存在变更的元素的标识以及变更操作类型;
所述处理单元1102,还用于记录对应所述第一版本的所述差异数据。
在又一种可能的实施方式中,所述结构化数据包含一个或者多个模块,每一个模块包含部分元素的属性和所述部分元素的属性对应的值;
所述处理单元1102,还用于:
将所述第一版本的结构化数据和所述上一个版本的结构化数据,按模块进行比较,得到所述关于所述第一版本的差异数据,所述差异数据包含对应所述一个或者多个模块的差异数据。
可选的,在进行去重时,处理单元1102可以按照版本从新到旧的顺序,进行去重操作,得到当前版本的全量元素。
可选的,处理单元1102进行去重操作时,可以保留某一ID的元素的最新版本的差异数据、以及去掉操作类型包含“删除”(即:“DROP”)的元素。
在又一种可能的实施方式中,所述获取单元1101,还用于接收来自用户设备的第一请求信息,所述第一请求信息用于请求所述第一版本的结构化数据;
所述处理单元1102,还用于根据关于所述第一版本的差异数据以及关于所述第一版本之前的版本的差异数据,得到所述第一版本的结构化数据。
在又一种可能的实施方式中,所述获取单元1101,还用于接收来自用户设备的第二请求信息,所述第二请求信息用于请求第一元素的变更记录,所述第一元素属于所述一个或者多个元素;
所述处理单元1102,还用于根据关于所述第一版本的差异数据、关于所述第一版本之前的版本的差异数据以及所述第一元素的信息,得到所述第一元素的变更记录。
在又一种可能的实施方式中,所述变更操作类型包含添加、删除或更新等中的一项或者多项。
在又一种可能的实施方式中,所述结构化数据包含数据库模型数据、JSON数据、或可扩展标记语言XML数据中的一项或者多项。
在又一种可能的实施方式中,所述结构化数据包含数据库模型数据,所述一个或者多个元素包含属于以下元素种类中的一种或者多种:表、字段、索引、视图、或关系。
应理解,相关描述还可以参见图3、图8或图10所示实施例中的描述,此处不再赘述。
请参见图12,图12是本申请实施例提供的一种计算设备120的结构示意图,该计算设备120可以为独立设备(例如服务器、或用户设备等等中的一个或者多个),也可以为独立设备内部的部件(例如芯片、软件模块或者硬件模块等)。该计算设备120可以包括至少一个处理器1201。可选的还可以包括至少一个存储器1203。进一步可选的,计算设备120还可以包括通信接口1202。更进一步可选的,还可以包含总线1204,其中,处理器1201、通信接口1202和存储器1203通过总线1204相连。
其中,处理器1201是进行算术运算和/或逻辑运算的模块,具体可以是中央处理器(central processing unit,CPU)、图片处理器(graphics processing unit,GPU)、微处理器(microprocessor unit,MPU)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)、复杂可编程逻辑器件(Complex programmable logic device,CPLD)、协处理器(协助中央处理器完成相应处理和应用)、微控制单元(Microcontroller Unit,MCU)等处理模块中的一种或者多种的组合。
通信接口1202可以用于为所述至少一个处理器提供信息输入或者输出。和/或,所述通信接口1202可以用于接收外部发送的数据和/或向外部发送数据,可以为包括诸如以太网电缆等的有线链路接口,也可以是无线链路(Wi-Fi、蓝牙、通用无线传输、车载短距通信技术以及其他短距无线通信技术等)接口。可选的,通信接口1202还可以包括与接口耦合的发射器(如射频发射器、天线等),或者接收器等。
存储器1203用于提供记录空间,记录空间中可以记录操作***和计算机程序等数据。存储器1203可以是随机记录记忆体(random access memory,RAM)、只读存储器(read-only memory,ROM)、可擦除可编程只读存储器(erasable programmable read onlymemory,EPROM)、或便携式只读存储器(compact disc read-only memory,CD-ROM)等等中的一种或者多种的组合。
该计算设备120中的至少一个处理器1201用于执行前述的版本管理方法,例如图3、图8或图10所示实施例所描述的版本管理方法。
可选的,处理器1201可以是专门用于执行这些方法的处理器(便于区别称为专用处理器),也可以是通过调用计算机程序来执行这些方法的处理器,例如通用处理器。可选的,至少一个处理器还可以既包括专用处理器也包括通用处理器。可选的,在计算设备包括至少一个处理器1201的情况下,上述计算机程序可以存在存储器1203中。
一种可能的设计中,上述计算设备120可以为前述实施例中的服务器。
在一种可能的实施方式中,该计算设备120中的至少一个处理器1201用于执行调用计算机指令,以执行以下操作:
获取第一版本的结构化数据,所述结构化数据包含元素的属性以及所述属性对应的值;
根据所述第一版本的结构化数据和上一个版本的结构化数据,得到关于所述第一版本的差异数据,所述关于第一版本的差异数据表征所述第一版本的结构化数据与所述上一个版本的结构化数据之间的差异,所述关于第一版本的差异数据包含所述第一版本的标识、存在变更的元素的标识以及变更操作类型;
记录对应所述第一版本的所述差异数据。
在又一种可能的实施方式中,所述结构化数据包含一个或者多个模块,每一个模块包含部分元素的属性和所述部分元素的属性对应的值;
所述处理器1201,还用于:
将所述第一版本的结构化数据和所述上一个版本的结构化数据,按模块进行比较,得到所述关于所述第一版本的差异数据,所述差异数据包含对应所述一个或者多个模块的差异数据。
可选的,在进行去重时,处理器1201可以按照版本从新到旧的顺序,进行去重操作,得到当前版本的全量元素。
可选的,处理器1201进行去重操作时,可以保留某一ID的元素的最新版本的差异数据、以及去掉操作类型包含“删除”(即:“DROP”)的元素。
在又一种可能的实施方式中,所述处理器1201,还用于:
通过通信接口1202接收来自用户设备的第一请求信息,所述第一请求信息用于请求所述第一版本的结构化数据;
根据关于所述第一版本的差异数据以及关于所述第一版本之前的版本的差异数据,得到所述第一版本的结构化数据。
在又一种可能的实施方式中,所述处理器1201,还用于:
通过通信接口1202接收来自用户设备的第二请求信息,所述第二请求信息用于请求第一元素的变更记录,所述第一元素属于所述一个或者多个元素;
根据关于所述第一版本的差异数据、关于所述第一版本之前的版本的差异数据以及所述第一元素的信息,得到所述第一元素的变更记录。
在又一种可能的实施方式中,所述变更操作类型包含添加、删除或更新等中的一项或者多项。
在又一种可能的实施方式中,所述结构化数据包含数据库模型数据、JSON数据、或可扩展标记语言XML数据中的一项或者多项。
在又一种可能的实施方式中,所述结构化数据包含数据库模型数据,所述一个或者多个元素包含属于以下元素种类中的一种或者多种:表、字段、索引、视图、或关系。
应理解,相关描述还可以参见图3、图8或图10所示实施例中的描述,此处不再赘述。
本申请还提供了一种算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在至少一个处理器上运行时,实现前述的版本管理方法,例如图3、图8或图10所示的版本管理方法。
本申请还提供了一种计算机程序产品,该计算机程序产品包括计算机指令,在被计算设备执行时,实现前述的版本管理方法,例如图3、图8或图10所示的版本管理方法。
本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
本申请中实施例提到的“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a、b、或c中的至少一项(个),可以表示:a、b、c、(a和b)、(a和c)、(b和c)、或(a和b和c),其中a、b、c可以是单个,也可以是多个。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A、同时存在A和B、单独存在B这三种情况,其中A、B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。
以及,除非有相反的说明,本申请实施例使用“第一”、“第二”等序数词是用于对多个对象进行区分,不用于限定多个对象的顺序、时序、优先级或者重要程度。例如,第一用户设备和第二用户设备,只是为了便于描述,而并不是表示这第一用户设备和第二用户设备的结构、重要程度等的不同,在某些实施例中,第一用户设备和第二用户设备还可以是同样的设备。
上述实施例中所用,根据上下文,术语“当……时”可以被解释为意思是“如果……”或“在……后”或“响应于确定……”或“响应于检测到……”。以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的构思和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以记录于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

Claims (16)

1.一种结构化数据的版本管理方法,其特征在于,包括:
获取第一版本的结构化数据,所述结构化数据包含元素的属性以及所述属性对应的值;
根据所述第一版本的结构化数据和上一个版本的结构化数据,得到关于所述第一版本的差异数据,所述关于第一版本的差异数据表征所述第一版本的结构化数据与所述上一个版本的结构化数据之间的差异,所述关于第一版本的差异数据包含所述第一版本的标识、存在变更的元素的标识以及变更操作类型;
记录关于所述第一版本的所述差异数据。
2.根据权利要求1所述的方法,其特征在于,所述结构化数据包含一个或者多个模块,每一个模块包含部分元素的属性和所述部分元素的属性对应的值;
所述根据第一版本的结构化数据和上一个版本的结构化数据,得到关于所述第一版本的差异数据,包括:
将所述第一版本的结构化数据和所述上一个版本的结构化数据,按模块进行比较,得到所述关于所述第一版本的差异数据,所述关于所述第一版本的差异数据包含对应所述一个或者多个模块的差异数据。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
接收来自用户设备的第一请求信息,所述第一请求信息用于请求所述第一版本的结构化数据;
根据关于所述第一版本的差异数据以及关于所述第一版本之前的版本的差异数据,得到所述第一版本的结构化数据。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
接收来自用户设备的第二请求信息,所述第二请求信息用于请求第一元素的变更记录,所述第一元素属于所述元素;
根据关于所述第一版本的差异数据、关于所述第一版本之前的版本的差异数据以及所述第一元素的信息,得到所述第一元素的变更记录。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述变更操作类型包含添加、删除或更新中的一项或者多项。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述结构化数据属于数据库模型数据、JSON数据、或可扩展标记语言XML数据。
7.根据权利要求6所述的方法,其特征在于,所述结构化数据属于数据库模型数据,
所述元素属于以下元素种类中的一种或者多种:表、字段、索引、视图、或关系。
8.一种版本管理装置,其特征在于,包括:
获取单元,用于获取第一版本的结构化数据,所述结构化数据包含元素的属性以及所述属性对应的值;
处理单元,用于根据所述第一版本的结构化数据和上一个版本的结构化数据,得到关于所述第一版本的差异数据,所述关于第一版本的差异数据表征所述第一版本的结构化数据与所述上一个版本的结构化数据之间的差异,所述关于第一版本的差异数据包含所述第一版本的标识、存在变更的元素的标识以及变更操作类型;
所述处理单元,还用于记录对应所述第一版本的所述差异数据。
9.根据权利要求8所述的装置,其特征在于,所述结构化数据包含一个或者多个模块,每一个模块包含部分元素的属性和所述部分元素的属性对应的值;
所述处理单元,还用于:
将所述第一版本的结构化数据和所述上一个版本的结构化数据,按模块进行比较,得到所述关于所述第一版本的差异数据,所述差异数据包含对应所述一个或者多个模块的差异数据。
10.根据权利要求8或9任一项所述的装置,其特征在于,
所述获取单元,还用于接收来自用户设备的第一请求信息,所述第一请求信息用于请求所述第一版本的结构化数据;
所述处理单元,还用于根据关于所述第一版本的差异数据以及关于所述第一版本之前的版本的差异数据,得到所述第一版本的结构化数据。
11.根据权利要求8-10任一项所述的装置,其特征在于,
所述获取单元,还用于接收来自用户设备的第二请求信息,所述第二请求信息用于请求第一元素的变更记录,所述第一元素属于所述一个或者多个元素;
所述处理单元,还用于根据关于所述第一版本的差异数据、关于所述第一版本之前的版本的差异数据以及所述第一元素的信息,得到所述第一元素的变更记录。
12.根据权利要求8-11任一项所述的装置,其特征在于,所述变更操作类型包含添加、删除或更新中的一项或者多项。
13.根据权利要求8-12任一项所述的装置,其特征在于,所述结构化数据包含数据库模型数据、JSON数据、或可扩展标记语言XML数据中的一项或者多项。
14.根据权利要求13所述的装置,其特征在于,所述结构化数据包含数据库模型数据,
所述一个或者多个元素包含属于以下元素种类中的一种或者多种:表、字段、索引、视图、或关系。
15.一种计算设备,其特征在于,所述计算设备包括处理器和存储器;
所述存储器中存储有计算机程序;
所述处理器执行所述计算机程序时,所述计算设备执行前述权利要求1至7中任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在至少一个处理器上运行时,实现如权利要求1至7中任一项所述的方法。
CN202111154746.4A 2021-09-29 2021-09-29 结构化数据的版本管理方法、装置及相关设备 Pending CN115878589A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202111154746.4A CN115878589A (zh) 2021-09-29 2021-09-29 结构化数据的版本管理方法、装置及相关设备
PCT/CN2022/115326 WO2023051125A1 (zh) 2021-09-29 2022-08-27 结构化数据的版本管理方法、装置及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111154746.4A CN115878589A (zh) 2021-09-29 2021-09-29 结构化数据的版本管理方法、装置及相关设备

Publications (1)

Publication Number Publication Date
CN115878589A true CN115878589A (zh) 2023-03-31

Family

ID=85756390

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111154746.4A Pending CN115878589A (zh) 2021-09-29 2021-09-29 结构化数据的版本管理方法、装置及相关设备

Country Status (2)

Country Link
CN (1) CN115878589A (zh)
WO (1) WO2023051125A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117573199A (zh) * 2024-01-16 2024-02-20 成都安世赛斯特软件技术有限公司 一种模型差异对比分析方法、装置、设备及介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117271480B (zh) * 2023-11-20 2024-03-15 国能日新科技股份有限公司 数据处理方法、装置、电子设备及介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080071806A1 (en) * 2006-09-20 2008-03-20 Microsoft Corporation Difference analysis for electronic data interchange (edi) data dictionary
US7996364B2 (en) * 2007-10-05 2011-08-09 Canon Kabushiki Kaisha Information processing apparatus and control method thereof, and document verification apparatus and control method thereof

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117573199A (zh) * 2024-01-16 2024-02-20 成都安世赛斯特软件技术有限公司 一种模型差异对比分析方法、装置、设备及介质
CN117573199B (zh) * 2024-01-16 2024-04-16 成都安世赛斯特软件技术有限公司 一种模型差异对比分析方法、装置、设备及介质

Also Published As

Publication number Publication date
WO2023051125A1 (zh) 2023-04-06

Similar Documents

Publication Publication Date Title
CN115617327A (zh) 低代码页面搭建***、方法及计算机可读存储介质
WO2023051125A1 (zh) 结构化数据的版本管理方法、装置及相关设备
EP3667493B1 (en) A method for a software development system
CN112199086A (zh) 自动编程控制***、方法、装置、电子设备及存储介质
CN111444181A (zh) 知识图谱更新方法、装置及电子设备
EP2502179A2 (en) Validation pipeline
CN110781658B (zh) 简历解析方法、装置、电子设备和存储介质
US20230086854A1 (en) Dynamically controlling case model structure using case fragments
US9477724B2 (en) Framework for visualizing re-written queries to database
US20140278307A1 (en) Generating variants from file differences
US20210124752A1 (en) System for Data Collection, Aggregation, Storage, Verification and Analytics with User Interface
CN110889013B (zh) 一种基于xml的数据关联方法、装置、服务器及存储介质
CN111435367A (zh) 知识图谱的构建方法、***、设备及存储介质
CN111427577A (zh) 代码处理方法、装置及服务器
CN113094776B (zh) 可视化组件模型数据构建的方法、***及电子设备
CN110222047A (zh) 一种动态表单生成方法和装置
CN117453980A (zh) 元数据管理、配置页面生成方法、服务器及存储介质
CN115629763A (zh) 目标代码的生成方法、npu指令的显示方法及装置
CN114756224A (zh) 一种活动执行方法及装置
US9633075B2 (en) Framework for re-writing database queries
CN111352747A (zh) 协同作业方法及装置
CN117008890B (zh) 扩展应用开发***及方法
CN113918576B (zh) 一种元数据管理平台及管理方法
CN115586916A (zh) 数据库模型的版本管理方法、装置及相关设备
CN114217899B (zh) 数据持久化方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication