版本继承数据的动态查询系统和方法技术方案

技术编号:7287215 阅读:231 留言:0更新日期:2012-04-21 21:12
本发明专利技术提供了一种版本继承数据的动态查询系统和方法,该系统包括:类型创建单元,根据多个数据对象的版本继承关系,将多个数据对象进行分类,生成多个数据类型;数据库创建单元,为每个数据类型的数据对象生成对应的数据库表,其中包含数据对象的版本数据;数据库视图创建单元,根据版本继承关系,生成数据库视图;实时处理单元,在数据对象被编辑时,将对应的数据库表进行实时更改,以实时更改对应的数据库视图;以及查询单元,生成对应于数据库视图的查询语句,并通过运行查询语句获取对应的数据对象。通过本发明专利技术的技术方案,可以有效地改进有父子关系类型的数据查询性能,降低开发人员对查询进行的SQL字符串程序编写难度。

【技术实现步骤摘要】

本专利技术涉及数据存储和查询
,具体而言,涉及一种。
技术介绍
本专利技术面向设计和制造的相关企业和设计单位,当我们谈到数据模型时,大家很自然的联想到模型数据和数据表,通常的数据模型是将现实的数据抽象为对象,对象分类后归纳为类型,类型的存储通常是数据表,制造业的数据主要是产品结构、零件、文档、工艺信息等,经研究和分析后发现零件、文档、文件对象是基础和最小单元,这三类对象都有两类特性,版本和状态,其中在状态的范围里生命周期状态是基础,我们通常建立两个维度, 第一个维度是版本维度,第二个维度是生命周期状态维度,这三类对象可抽象为一种类型, 这种类型的适用分类树的方式进行组织,类型之间支持继承关系。继承举例我们通常将生活在某个省的人叫省名+人,例如湖南人、河北人等,为什么这么叫,其实大家很容易发现,某地的人有很多相同的特性,例如方言、饮食等,这种大类加小类的方法很容易形成继承关系的类型组合,一个人我们可以从国家的分类叫他某国人,从地区可以叫他某地人,这样一个人就可以这样定位了,中国.河北石家庄人。当前数据模型中类型的继承关系定义基本相同,包括类型主体和属性集两部分, 数据存储的方式种类比较多,本专利技术主要针对的方式是类型和属性一一对应于数据表和字段的存储方式。在这种存储方式中,类型名称和数据表名存在映射关系,类型和数据表的数量关系是1:1,类型属性和数据字段之间存在映射关系,它们之间的数量关系是1:1,类型属性和数据表字段的数据类型存在如下对应关系字符串型对应varchar ;数字型对应 number (η);小数型对应 number (η,η);日期型对应datetime ;时间型对应datatime ;大文本型对应clob ;图像型对象blob。然而对于这种存储方式,在查询父子关系的相关数据时,需要对数据表进行逐一查询,汇总后才能得到全部的数据。另外,对于版本数据,目前国际通用的版本机制是二级版本机制,即无版本情况;一级版本情况;二级版本情况;4版本实例通常由三种基础单元组成主单元;版本单元;版次单元;版本实例和基础单元之间的关系如下无版本只有主单元,没有版本单元和版次单元;一级版本有主单元和版本单元;二级版本有主单元、版本单元、版次单元;通过系统抽象为类型,包含下列类型无版本类型;一级版本类型;二级版本类型;版本数据有如下特征属性主标识;版本标识;版本号;当前版本号;版次标识;版次号;当前版次号;三种版本情况,主体、版本、版次分别赋予唯一标识,不同情况下这三者间的变化如下如图1所示,在无版本的情况,此时一个对象一个主体,一个主体对应一个版本,一个版本对应一个版次,对外版本和版次信息不显示。如图2所示,是一级版本的情况,此时一级版本机制主体唯一,主体和版本的关系是一对多,版本和版次的关系是一对一。如图3所示,在二级版本的情况,此时的二级版本机制中,主体唯一,主体和版本的关系是一对多,版本和版次的关系是一对多。无论对象为何种版本机制,类型对应的数据表分为主体数据、版本数据、版次数据三部分,必须有如下字段版本ξ数据中包含当前版本号主体ξ数据包含最新版本号;版次;数据包含当前版次号;版本ξ数据包含最新版次号;版本实例是由三部分组成主体 master ;版本revision ;版次version ;主体master中包含主体标识和最新版本号属性版本revision中包括版本标识和最新版次号属性;在version中的AttrValue是一个哈希表,它存储着属性名和值的信息, orgAttrValue也是一个哈希表,初始加载时为空,当用户改变了某个属性值时,对象工厂将原始的属性名和值复制到orgAttrValue中,而且只复制一次,然后将AttrValue中的属性值改变,用户多次改变同一个属性值时,只改变AttrValue中的值;相关技术中,问题主要在二级版本的动态查询数据上,不同的用户对数据查询有不同的需求,大体分为如下几类1)获取二级版本的所有版本的所有版次的数据(AllRevisionAllVersion);2)获取二级版本的指定版本的所有版次的数据(CurrentRevisionAllVersion);3)获取二级版本的指定版本的最新版次的数据(CurrentRevisionLastestVersi on);4)获取二级版本的指定版本的制定版次的数据(CurrentRevisionCurrentVersi on);5)获取二级版本的最新版本的最新版次的数据(LastestRevisionLastestVersi on) ο因此,需要一种新的版本继承数据的动态查询技术,可以有效地改进有父子关系类型的数据查询性能,降低开发人员对查询进行的SQL字符串程序编写难度。
技术实现思路
本专利技术正是基于上述问题,提出了一种新的版本继承数据的动态查询技术,可以有效地改进有父子关系类型的数据查询性能,降低开发人员对查询进行的SQL字符串程序编写难度。有鉴于此,本专利技术提出了一种版本继承数据的动态查询系统,包括类型创建单元,根据多个数据对象的版本继承关系,将所述多个数据对象进行分类,并生成对应的多个数据类型;数据库创建单元,为每个数据类型的数据对象生成对应的数据库表,其中,所述数据库表中包含所述数据对象的版本数据;数据库视图创建单元,根据所述版本继承关系, 生成对应于每个所述数据库表的数据库视图;实时处理单元,在数据对象被编辑时,将对应的数据库表进行实时更改,以实时更改对应的数据库视图;以及查询单元,生成对应于所述数据库视图的查询语句,并通过运行所述查询语句获取对应的数据对象。在该技术方案中,通过为每个类型对应的数据库表生成数据库视图,使得用户可以在界面上对该类型及其中的数据对象,以及数据对象之间的版本继承关系得到直观的了解,从而以更简单的方式,生成相应的查询语句,并获取对应的查询对象。同时,在数据对象发生变化时,可以将对应的数据库表进行实时变化,而对应于该数据库表的数据库视图也会实时发生变化,从而达到对数据对象的变化的实时体现。在上述技术方案中,优选地,所述版本数据包括数据对象的至少一个版本信息、 以及对应于每个所述版本信息的至少一个版次信息。在该技术方案中,对于无版本数据,其版本和版次是唯一的,则对应的版本数据可以认为是“空”,或是预设的数值;对于一级版本数据,其版次是唯一的,则也可以认为是“空”,或是预设的数值;对于二级数据,则一定存在对应的版本信息和版次信息。在上述技术方案中,优选地,所述类型创建单元还包括父类型确认子单元,确定所述数据类型的父类型;属性移植子单元,复制所述父类型的所有数据属性,并导入所述数据类型。在该技术方案中,当生成新的类型时,对于存在版本继承关系的类型,即父类型,需要将父类型中的所有数据属性复制过来,用在新生成的类型中。在上述技术方案中,优选地,还包括编辑单元,对所述数据类型进行编辑操作,所述编辑操作包括修改或删除所述数据类型。在上述技术方案中,优选地,数据库视图创建单元还包括父类型删除子单元,在生成对应于所述数据库表的所述数据库视图之后,删除所述数据类型对应的父类型的数据库视图,并递归删除所述数据类型的祖先类型对应的数据库视图;以及父类型创建子单元, 为所述数据类型的祖先类型递归创建对应的本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:王玉林
申请(专利权)人:用友软件股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术