亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

版本繼承數(shù)據(jù)的動態(tài)查詢系統(tǒng)和方法

文檔序號:6443866閱讀:234來源:國知局
專利名稱:版本繼承數(shù)據(jù)的動態(tài)查詢系統(tǒng)和方法
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)存儲和查詢技術(shù)領(lǐng)域,具體而言,涉及一種版本繼承數(shù)據(jù)的動態(tài)查詢系統(tǒng)和方法。
背景技術(shù)
本發(fā)明面向設(shè)計和制造的相關(guān)企業(yè)和設(shè)計單位,當(dāng)我們談到數(shù)據(jù)模型時,大家很自然的聯(lián)想到模型數(shù)據(jù)和數(shù)據(jù)表,通常的數(shù)據(jù)模型是將現(xiàn)實的數(shù)據(jù)抽象為對象,對象分類后歸納為類型,類型的存儲通常是數(shù)據(jù)表,制造業(yè)的數(shù)據(jù)主要是產(chǎn)品結(jié)構(gòu)、零件、文檔、工藝信息等,經(jīng)研究和分析后發(fā)現(xiàn)零件、文檔、文件對象是基礎(chǔ)和最小單元,這三類對象都有兩類特性,版本和狀態(tài),其中在狀態(tài)的范圍里生命周期狀態(tài)是基礎(chǔ),我們通常建立兩個維度, 第一個維度是版本維度,第二個維度是生命周期狀態(tài)維度,這三類對象可抽象為一種類型, 這種類型的適用分類樹的方式進行組織,類型之間支持繼承關(guān)系。繼承舉例我們通常將生活在某個省的人叫省名+人,例如湖南人、河北人等,為什么這么叫,其實大家很容易發(fā)現(xiàn),某地的人有很多相同的特性,例如方言、飲食等,這種大類加小類的方法很容易形成繼承關(guān)系的類型組合,一個人我們可以從國家的分類叫他某國人,從地區(qū)可以叫他某地人,這樣一個人就可以這樣定位了,中國.河北石家莊人。當(dāng)前數(shù)據(jù)模型中類型的繼承關(guān)系定義基本相同,包括類型主體和屬性集兩部分, 數(shù)據(jù)存儲的方式種類比較多,本發(fā)明主要針對的方式是類型和屬性一一對應(yīng)于數(shù)據(jù)表和字段的存儲方式。在這種存儲方式中,類型名稱和數(shù)據(jù)表名存在映射關(guān)系,類型和數(shù)據(jù)表的數(shù)量關(guān)系是1:1,類型屬性和數(shù)據(jù)字段之間存在映射關(guān)系,它們之間的數(shù)量關(guān)系是1:1,類型屬性和數(shù)據(jù)表字段的數(shù)據(jù)類型存在如下對應(yīng)關(guān)系字符串型對應(yīng)varchar ;數(shù)字型對應(yīng) number (η);小數(shù)型對應(yīng) number (η,η);日期型對應(yīng)datetime ;
時間型對應(yīng)datatime ;大文本型對應(yīng)clob ;圖像型對象blob。然而對于這種存儲方式,在查詢父子關(guān)系的相關(guān)數(shù)據(jù)時,需要對數(shù)據(jù)表進行逐一查詢,匯總后才能得到全部的數(shù)據(jù)。另外,對于版本數(shù)據(jù),目前國際通用的版本機制是二級版本機制,即無版本情況;一級版本情況;二級版本情況;
4
版本實例通常由三種基礎(chǔ)單元組成
主單元;
版本單元;
版次單元;
版本實例和基礎(chǔ)單元之間的關(guān)系如下
無版本只有主單元,沒有版本單元和版次單元;
一級版本有主單元和版本單元;
二級版本有主單元、版本單元、版次單元;
通過系統(tǒng)抽象為類型,包含下列類型
無版本類型;
一級版本類型;
二級版本類型;
版本數(shù)據(jù)有如下特征屬性
主標識;
版本標識;
版本號;
當(dāng)前版本號;
版次標識;
版次號;
當(dāng)前版次號;
三種版本情況,主體、版本、版次分別賦予唯一標識,不同情況下這三者間的變化如下
如圖1所示,在無版本的情況,此時一個對象一個主體,一個主體對應(yīng)一個版本,
一個版本對應(yīng)一個版次,對外版本和版次信息不顯示。如圖2所示,是一級版本的情況,此時一級版本機制主體唯一,主體和版本的關(guān)系是一對多,版本和版次的關(guān)系是一對一。如圖3所示,在二級版本的情況,此時的二級版本機制中,主體唯一,主體和版本的關(guān)系是一對多,版本和版次的關(guān)系是一對多。無論對象為何種版本機制,類型對應(yīng)的數(shù)據(jù)表分為主體數(shù)據(jù)、版本數(shù)據(jù)、版次數(shù)據(jù)三部分,必須有如下字段版本ξ數(shù)據(jù)中包含當(dāng)前版本號
主體ξ數(shù)據(jù)包含最新版本號;
版次;數(shù)據(jù)包含當(dāng)前版次號;
版本ξ數(shù)據(jù)包含最新版次號;
版本實例是由三部分組成
主體 master ;
版本revision ;
版次version ;
主體master中包含主體標識和最新版本號屬性
版本revision中包括版本標識和最新版次號屬性;在version中的AttrValue是一個哈希表,它存儲著屬性名和值的信息, orgAttrValue也是一個哈希表,初始加載時為空,當(dāng)用戶改變了某個屬性值時,對象工廠將原始的屬性名和值復(fù)制到orgAttrValue中,而且只復(fù)制一次,然后將AttrValue中的屬性值改變,用戶多次改變同一個屬性值時,只改變AttrValue中的值;相關(guān)技術(shù)中,問題主要在二級版本的動態(tài)查詢數(shù)據(jù)上,不同的用戶對數(shù)據(jù)查詢有不同的需求,大體分為如下幾類1)獲取二級版本的所有版本的所有版次的數(shù)據(jù)(AllRevisionAllVersion);2)獲取二級版本的指定版本的所有版次的數(shù)據(jù)(CurrentRevisionAllVersion);3)獲取二級版本的指定版本的最新版次的數(shù)據(jù)(CurrentRevisionLastestVersi on);4)獲取二級版本的指定版本的制定版次的數(shù)據(jù)(CurrentRevisionCurrentVersi on);5)獲取二級版本的最新版本的最新版次的數(shù)據(jù)(LastestRevisionLastestVersi on) ο因此,需要一種新的版本繼承數(shù)據(jù)的動態(tài)查詢技術(shù),可以有效地改進有父子關(guān)系類型的數(shù)據(jù)查詢性能,降低開發(fā)人員對查詢進行的SQL字符串程序編寫難度。

發(fā)明內(nèi)容
本發(fā)明正是基于上述問題,提出了一種新的版本繼承數(shù)據(jù)的動態(tài)查詢技術(shù),可以有效地改進有父子關(guān)系類型的數(shù)據(jù)查詢性能,降低開發(fā)人員對查詢進行的SQL字符串程序
編寫難度。有鑒于此,本發(fā)明提出了一種版本繼承數(shù)據(jù)的動態(tài)查詢系統(tǒng),包括類型創(chuàng)建單元,根據(jù)多個數(shù)據(jù)對象的版本繼承關(guān)系,將所述多個數(shù)據(jù)對象進行分類,并生成對應(yīng)的多個數(shù)據(jù)類型;數(shù)據(jù)庫創(chuàng)建單元,為每個數(shù)據(jù)類型的數(shù)據(jù)對象生成對應(yīng)的數(shù)據(jù)庫表,其中,所述數(shù)據(jù)庫表中包含所述數(shù)據(jù)對象的版本數(shù)據(jù);數(shù)據(jù)庫視圖創(chuàng)建單元,根據(jù)所述版本繼承關(guān)系, 生成對應(yīng)于每個所述數(shù)據(jù)庫表的數(shù)據(jù)庫視圖;實時處理單元,在數(shù)據(jù)對象被編輯時,將對應(yīng)的數(shù)據(jù)庫表進行實時更改,以實時更改對應(yīng)的數(shù)據(jù)庫視圖;以及查詢單元,生成對應(yīng)于所述數(shù)據(jù)庫視圖的查詢語句,并通過運行所述查詢語句獲取對應(yīng)的數(shù)據(jù)對象。在該技術(shù)方案中,通過為每個類型對應(yīng)的數(shù)據(jù)庫表生成數(shù)據(jù)庫視圖,使得用戶可以在界面上對該類型及其中的數(shù)據(jù)對象,以及數(shù)據(jù)對象之間的版本繼承關(guān)系得到直觀的了解,從而以更簡單的方式,生成相應(yīng)的查詢語句,并獲取對應(yīng)的查詢對象。同時,在數(shù)據(jù)對象發(fā)生變化時,可以將對應(yīng)的數(shù)據(jù)庫表進行實時變化,而對應(yīng)于該數(shù)據(jù)庫表的數(shù)據(jù)庫視圖也會實時發(fā)生變化,從而達到對數(shù)據(jù)對象的變化的實時體現(xiàn)。在上述技術(shù)方案中,優(yōu)選地,所述版本數(shù)據(jù)包括數(shù)據(jù)對象的至少一個版本信息、 以及對應(yīng)于每個所述版本信息的至少一個版次信息。在該技術(shù)方案中,對于無版本數(shù)據(jù),其版本和版次是唯一的,則對應(yīng)的版本數(shù)據(jù)可以認為是“空”,或是預(yù)設(shè)的數(shù)值;對于一級版本數(shù)據(jù),其版次是唯一的,則也可以認為是“空”,或是預(yù)設(shè)的數(shù)值;對于二級數(shù)據(jù),則一定存在對應(yīng)的版本信息和版次信息。
在上述技術(shù)方案中,優(yōu)選地,所述類型創(chuàng)建單元還包括父類型確認子單元,確定所述數(shù)據(jù)類型的父類型;屬性移植子單元,復(fù)制所述父類型的所有數(shù)據(jù)屬性,并導(dǎo)入所述數(shù)據(jù)類型。在該技術(shù)方案中,當(dāng)生成新的類型時,對于存在版本繼承關(guān)系的類型,即父類型,需要將父類型中的所有數(shù)據(jù)屬性復(fù)制過來,用在新生成的類型中。在上述技術(shù)方案中,優(yōu)選地,還包括編輯單元,對所述數(shù)據(jù)類型進行編輯操作,所述編輯操作包括修改或刪除所述數(shù)據(jù)類型。在上述技術(shù)方案中,優(yōu)選地,數(shù)據(jù)庫視圖創(chuàng)建單元還包括父類型刪除子單元,在生成對應(yīng)于所述數(shù)據(jù)庫表的所述數(shù)據(jù)庫視圖之后,刪除所述數(shù)據(jù)類型對應(yīng)的父類型的數(shù)據(jù)庫視圖,并遞歸刪除所述數(shù)據(jù)類型的祖先類型對應(yīng)的數(shù)據(jù)庫視圖;以及父類型創(chuàng)建子單元, 為所述數(shù)據(jù)類型的祖先類型遞歸創(chuàng)建對應(yīng)的數(shù)據(jù)庫視圖。在該技術(shù)方案中,在生成新的類型或是對已存在的類型進行編輯操作時,由于導(dǎo)致產(chǎn)生了新的繼承關(guān)系,因此,需要通過遞歸的方式,找到原來的父類型、父類型的父類型、父類型的父類型的父類型等等,進行刪除對應(yīng)的視圖后,按照新的繼承關(guān)系進行生成對應(yīng)的視圖,從而實現(xiàn)視圖上的關(guān)系能夠隨著對應(yīng)的類型或數(shù)據(jù)對象的變化而更新。根據(jù)本發(fā)明的又一方面,還提出了一種版本繼承數(shù)據(jù)的動態(tài)查詢方法,包括步驟 202,根據(jù)多個數(shù)據(jù)對象的版本繼承關(guān)系,將所述多個數(shù)據(jù)對象進行分類,并生成對應(yīng)的多個數(shù)據(jù)類型;步驟204,為每個數(shù)據(jù)類型的數(shù)據(jù)對象生成對應(yīng)的數(shù)據(jù)庫表,其中,所述數(shù)據(jù)庫表中包含所述數(shù)據(jù)對象的版本數(shù)據(jù);步驟206,根據(jù)所述版本繼承關(guān)系,生成對應(yīng)于每個所述數(shù)據(jù)庫表的數(shù)據(jù)庫視圖;步驟208,在對數(shù)據(jù)對象進行編輯時,將對應(yīng)的數(shù)據(jù)庫表進行實時更改,以實時更改對應(yīng)的數(shù)據(jù)庫視圖;步驟210,生成對應(yīng)于所述數(shù)據(jù)庫視圖的查詢語句,并通過運行所述查詢語句獲取對應(yīng)的數(shù)據(jù)對象。在該技術(shù)方案中,通過為每個類型對應(yīng)的數(shù)據(jù)庫表生成數(shù)據(jù)庫視圖,使得用戶可以在界面上對該類型及其中的數(shù)據(jù)對象,以及數(shù)據(jù)對象之間的版本繼承關(guān)系得到直觀的了解,從而以更簡單的方式,生成相應(yīng)的查詢語句,并獲取對應(yīng)的查詢對象。同時,在數(shù)據(jù)對象發(fā)生變化時,可以將對應(yīng)的數(shù)據(jù)庫表進行實時變化,而對應(yīng)于該數(shù)據(jù)庫表的數(shù)據(jù)庫視圖也會實時發(fā)生變化,從而達到對數(shù)據(jù)對象的變化的實時體現(xiàn)。在上述技術(shù)方案中,優(yōu)選地,所述版本數(shù)據(jù)包括數(shù)據(jù)對象的至少一個版本信息、 以及對應(yīng)于每個所述版本信息的至少一個版次信息。在該技術(shù)方案中,對于無版本數(shù)據(jù),其版本和版次是唯一的,則對應(yīng)的版本數(shù)據(jù)可以認為是“空”,或是預(yù)設(shè)的數(shù)值;對于一級版本數(shù)據(jù),其版次是唯一的,則也可以認為是“空”,或是預(yù)設(shè)的數(shù)值;對于二級數(shù)據(jù),則一定存在對應(yīng)的版本信息和版次信息。在上述技術(shù)方案中,優(yōu)選地,在所述步驟202中,還包括步驟2002,確定所述數(shù)據(jù)類型的父類型;步驟2004,復(fù)制所述父類型的所有數(shù)據(jù)屬性,并導(dǎo)入所述數(shù)據(jù)類型。在該技術(shù)方案中,當(dāng)生成新的類型時,對于存在版本繼承關(guān)系的類型,即父類型,需要將父類型中的所有數(shù)據(jù)屬性復(fù)制過來,用在新生成的類型中。在上述技術(shù)方案中,優(yōu)選地,還包括對所述數(shù)據(jù)類型進行編輯操作,所述編輯操作包括修改或刪除所述數(shù)據(jù)類型。在上述技術(shù)方案中,優(yōu)選地,所述步驟206之后,還包括步驟2006,刪除所述數(shù)據(jù)類型對應(yīng)的父類型的數(shù)據(jù)庫視圖,并遞歸刪除所述數(shù)據(jù)類型的祖先類型對應(yīng)的數(shù)據(jù)庫視圖;步驟2008,為所述數(shù)據(jù)類型的祖先類型遞歸創(chuàng)建對應(yīng)的數(shù)據(jù)庫視圖。在該技術(shù)方案中, 在生成新的類型或是對已存在的類型進行編輯操作時,由于導(dǎo)致產(chǎn)生了新的繼承關(guān)系,因此,需要通過遞歸的方式,找到原來的父類型、父類型的父類型、父類型的父類型的父類型等等,進行刪除對應(yīng)的視圖后,按照新的繼承關(guān)系進行生成對應(yīng)的視圖,從而實現(xiàn)視圖上的關(guān)系能夠隨著對應(yīng)的類型或數(shù)據(jù)對象的變化而更新。通過以上技術(shù)方案,可以有效地改進有父子關(guān)系類型的數(shù)據(jù)查詢性能,降低開發(fā)人員對查詢進行的SQL字符串程序編寫難度。


圖1示出了相關(guān)技術(shù)的無版本數(shù)據(jù)的機制示意圖;圖2示出了相關(guān)技術(shù)的一級版本數(shù)據(jù)的機制示意圖;圖3示出了相關(guān)技術(shù)的二級版本數(shù)據(jù)的機制示意圖;圖4示出了根據(jù)本發(fā)明的實施例的版本繼承數(shù)據(jù)的動態(tài)查詢系統(tǒng)的框圖;圖5示出了根據(jù)本發(fā)明的實施例的版本繼承數(shù)據(jù)的動態(tài)查詢方法的流程圖;圖6示出了根據(jù)本發(fā)明的實施例的創(chuàng)建類型的流程圖;圖7示出了根據(jù)本發(fā)明的實施例的修改類型的流程圖;圖8示出了根據(jù)本發(fā)明的實施例的刪除類型的流程圖;圖9示出了根據(jù)本發(fā)明的實施例的對象、數(shù)據(jù)庫表和數(shù)據(jù)庫視圖的關(guān)系的示意圖;圖10示出了根據(jù)本發(fā)明的實施例的編輯數(shù)據(jù)對象的示意圖;圖11示出了根據(jù)本發(fā)明的實施例的數(shù)據(jù)對象的查詢結(jié)果的示意圖。
具體實施例方式為了能夠更清楚地理解本發(fā)明的上述目的、特征和優(yōu)點,下面結(jié)合附圖和具體實施方式
對本發(fā)明進行進一步的詳細描述。在下面的描述中闡述了很多具體細節(jié)以便于充分理解本發(fā)明,但是,本發(fā)明還可以采用其他不同于在此描述的其他方式來實施,因此,本發(fā)明并不限于下面公開的具體實施例的限制。圖4示出了根據(jù)本發(fā)明的實施例的版本繼承數(shù)據(jù)的動態(tài)查詢系統(tǒng)的框圖。如圖4所示,根據(jù)本發(fā)明的實施例的版本繼承數(shù)據(jù)的動態(tài)查詢系統(tǒng)100,包括類型創(chuàng)建單元102,根據(jù)多個數(shù)據(jù)對象的版本繼承關(guān)系,將多個數(shù)據(jù)對象進行分類,并生成對應(yīng)的多個數(shù)據(jù)類型;數(shù)據(jù)庫創(chuàng)建單元104,為每個數(shù)據(jù)類型的數(shù)據(jù)對象生成對應(yīng)的數(shù)據(jù)庫表,其中,數(shù)據(jù)庫表中包含數(shù)據(jù)對象的版本數(shù)據(jù);數(shù)據(jù)庫視圖創(chuàng)建單元106,根據(jù)版本繼承關(guān)系,生成對應(yīng)于每個數(shù)據(jù)庫表的數(shù)據(jù)庫視圖;實時處理單元108,在數(shù)據(jù)對象被編輯時, 將對應(yīng)的數(shù)據(jù)庫表進行實時更改,以實時更改對應(yīng)的數(shù)據(jù)庫視圖;以及查詢單元110,生成對應(yīng)于數(shù)據(jù)庫視圖的查詢語句,并通過運行查詢語句獲取對應(yīng)的數(shù)據(jù)對象。在該技術(shù)方案中,通過為每個類型對應(yīng)的數(shù)據(jù)庫表生成數(shù)據(jù)庫視圖,使得用戶可以在界面上對該類型及其中的數(shù)據(jù)對象,以及數(shù)據(jù)對象之間的版本繼承關(guān)系得到直觀的了解,從而以更簡單的方式,生成相應(yīng)的查詢語句,并獲取對應(yīng)的查詢對象。同時,在數(shù)據(jù)對象發(fā)生變化時,可以將對應(yīng)的數(shù)據(jù)庫表進行實時變化,而對應(yīng)于該數(shù)據(jù)庫表的數(shù)據(jù)庫視圖也會實時發(fā)生變化,從而達到對數(shù)據(jù)對象的變化的實時體現(xiàn)。在上述技術(shù)方案中,版本數(shù)據(jù)包括數(shù)據(jù)對象的至少一個版本信息、以及對應(yīng)于每個版本信息的至少一個版次信息。在該技術(shù)方案中,對于無版本數(shù)據(jù),其版本和版次是唯一的,則對應(yīng)的版本數(shù)據(jù)可以認為是“空”,或是預(yù)設(shè)的數(shù)值;對于一級版本數(shù)據(jù),其版次是唯一的,則也可以認為是“空”,或是預(yù)設(shè)的數(shù)值;對于二級數(shù)據(jù),則一定存在對應(yīng)的版本信息和版次信息。在上述技術(shù)方案中,類型創(chuàng)建單元102還包括父類型確認子單元1020,確定數(shù)據(jù)類型的父類型;屬性移植子單元1022,復(fù)制父類型的所有數(shù)據(jù)屬性,并導(dǎo)入數(shù)據(jù)類型。在該技術(shù)方案中,當(dāng)生成新的類型時,對于存在版本繼承關(guān)系的類型,即父類型,需要將父類型中的所有數(shù)據(jù)屬性復(fù)制過來,用在新生成的類型中。在上述技術(shù)方案中,還包括編輯單元112,對數(shù)據(jù)類型進行編輯操作,編輯操作包括修改或刪除數(shù)據(jù)類型。在上述技術(shù)方案中,數(shù)據(jù)庫視圖創(chuàng)建單元106還包括父類型刪除子單元1060,在生成對應(yīng)于數(shù)據(jù)庫表的數(shù)據(jù)庫視圖之后,刪除數(shù)據(jù)類型對應(yīng)的父類型的數(shù)據(jù)庫視圖,并遞歸刪除數(shù)據(jù)類型的祖先類型對應(yīng)的數(shù)據(jù)庫視圖;以及父類型創(chuàng)建子單元1062,為數(shù)據(jù)類型的祖先類型遞歸創(chuàng)建對應(yīng)的數(shù)據(jù)庫視圖。在該技術(shù)方案中,在生成新的類型或是對已存在的類型進行編輯操作時,由于導(dǎo)致產(chǎn)生了新的繼承關(guān)系,因此,需要通過遞歸的方式,找到原來的父類型、父類型的父類型、父類型的父類型的父類型等等,進行刪除對應(yīng)的視圖后, 按照新的繼承關(guān)系進行生成對應(yīng)的視圖,從而實現(xiàn)視圖上的關(guān)系能夠隨著對應(yīng)的類型或數(shù)據(jù)對象的變化而更新。圖5示出了根據(jù)本發(fā)明的實施例的版本繼承數(shù)據(jù)的動態(tài)查詢方法的流程圖。如圖5所示,根據(jù)本發(fā)明的實施例的版本繼承數(shù)據(jù)的動態(tài)查詢方法,包括步驟 202,根據(jù)多個數(shù)據(jù)對象的版本繼承關(guān)系,將多個數(shù)據(jù)對象進行分類,并生成對應(yīng)的多個數(shù)據(jù)類型;步驟204,為每個數(shù)據(jù)類型的數(shù)據(jù)對象生成對應(yīng)的數(shù)據(jù)庫表,其中,數(shù)據(jù)庫表中包含數(shù)據(jù)對象的版本數(shù)據(jù);步驟206,根據(jù)版本繼承關(guān)系,生成對應(yīng)于每個數(shù)據(jù)庫表的數(shù)據(jù)庫視圖;步驟208,在對數(shù)據(jù)對象進行編輯時,將對應(yīng)的數(shù)據(jù)庫表進行實時更改,以實時更改對應(yīng)的數(shù)據(jù)庫視圖;步驟210,生成對應(yīng)于數(shù)據(jù)庫視圖的查詢語句,并通過運行查詢語句獲取對應(yīng)的數(shù)據(jù)對象。在該技術(shù)方案中,通過為每個類型對應(yīng)的數(shù)據(jù)庫表生成數(shù)據(jù)庫視圖,使得用戶可以在界面上對該類型及其中的數(shù)據(jù)對象,以及數(shù)據(jù)對象之間的版本繼承關(guān)系得到直觀的了解,從而以更簡單的方式,生成相應(yīng)的查詢語句,并獲取對應(yīng)的查詢對象。同時,在數(shù)據(jù)對象發(fā)生變化時,可以將對應(yīng)的數(shù)據(jù)庫表進行實時變化,而對應(yīng)于該數(shù)據(jù)庫表的數(shù)據(jù)庫視圖也會實時發(fā)生變化,從而達到對數(shù)據(jù)對象的變化的實時體現(xiàn)。在上述技術(shù)方案中,版本數(shù)據(jù)包括數(shù)據(jù)對象的至少一個版本信息、以及對應(yīng)于每個版本信息的至少一個版次信息。在該技術(shù)方案中,對于無版本數(shù)據(jù),其版本和版次是唯一的,則對應(yīng)的版本數(shù)據(jù)可以認為是“空”,或是預(yù)設(shè)的數(shù)值;對于一級版本數(shù)據(jù),其版次是唯一的,則也可以認為是“空”,或是預(yù)設(shè)的數(shù)值;對于二級數(shù)據(jù),則一定存在對應(yīng)的版本信息和版次信息。
在上述技術(shù)方案中,在步驟202中,還包括步驟2002,確定數(shù)據(jù)類型的父類型;步驟2004,復(fù)制父類型的所有數(shù)據(jù)屬性,并導(dǎo)入數(shù)據(jù)類型。在該技術(shù)方案中,當(dāng)生成新的類型時,對于存在版本繼承關(guān)系的類型,即父類型,需要將父類型中的所有數(shù)據(jù)屬性復(fù)制過來, 用在新生成的類型中。在上述技術(shù)方案中,還包括對數(shù)據(jù)類型進行編輯操作,編輯操作包括修改或刪除數(shù)據(jù)類型。在上述技術(shù)方案中,步驟206之后,還包括步驟2006,刪除數(shù)據(jù)類型對應(yīng)的父類型的數(shù)據(jù)庫視圖,并遞歸刪除數(shù)據(jù)類型的祖先類型對應(yīng)的數(shù)據(jù)庫視圖;步驟2008,為數(shù)據(jù)類型的祖先類型遞歸創(chuàng)建對應(yīng)的數(shù)據(jù)庫視圖。在該技術(shù)方案中,在生成新的類型或是對已存在的類型進行編輯操作時,由于導(dǎo)致產(chǎn)生了新的繼承關(guān)系,因此,需要通過遞歸的方式, 找到原來的父類型、父類型的父類型、父類型的父類型的父類型等等,進行刪除對應(yīng)的視圖后,按照新的繼承關(guān)系進行生成對應(yīng)的視圖,從而實現(xiàn)視圖上的關(guān)系能夠隨著對應(yīng)的類型或數(shù)據(jù)對象的變化而更新。圖6示出了根據(jù)本發(fā)明的實施例的創(chuàng)建類型的流程圖。如圖6所示,根據(jù)本發(fā)明的實施例的創(chuàng)建類型的業(yè)務(wù)邏輯如下步驟302,創(chuàng)建類型。這里主要是指獲取對應(yīng)的類型模型、確定類型的名稱等。步驟304,選擇父類型。對于存在版本繼承關(guān)系的數(shù)據(jù)對象,多個數(shù)據(jù)對象之間即為“父子”關(guān)系,由于創(chuàng)建新的類型時,必然導(dǎo)致原來的父類型已存在的繼承關(guān)系、生成的視圖等發(fā)生改變,因此需要對其進行操作,保證在對于的視圖上實時顯示出最新的數(shù)據(jù)關(guān)系和版本繼承信息。步驟306,復(fù)制父類型的所有屬性。這里是指將父類型的所有屬性復(fù)制后,存儲至新的類型中。步驟308,保存類型并生成數(shù)據(jù)表。這里的數(shù)據(jù)表,即為數(shù)據(jù)庫表,是為類型生成的對應(yīng)的物理表。步驟310,創(chuàng)建當(dāng)前類型的視圖。根據(jù)生成的數(shù)據(jù)表,生成對應(yīng)的視圖,從而使得用戶可以直觀地得到對應(yīng)的類型、數(shù)據(jù)對象的版本關(guān)系和情況。步驟312,刪除父類型對應(yīng)的視圖。原來的視圖對應(yīng)著原來的舊的版本繼承關(guān)系, 可以進行刪除。步驟314,遞歸查找父類型,判斷之前的父類型是否遞歸地存在多級父類型,若存在,則進入步驟316,否則進入步驟318。步驟316,定位父類型,并進一步進入步驟312,刪除對應(yīng)的視圖。步驟318,創(chuàng)建所有父類型的視圖,這里包括對所有之前遞歸刪除了舊的視圖的父類型進行的操作。圖7示出了根據(jù)本發(fā)明的實施例的修改類型的流程圖。如圖7所示,根據(jù)本發(fā)明的實施例的修改類型的流程如下步驟402,選中要修改的類型。步驟404,修改后保存。步驟406,判斷屬性是否進行了修改,若是,則進入步驟408,否則進入步驟418。這里的修改是指對類型的屬性的編輯,如新增屬性、刪除屬性、修改屬性的數(shù)據(jù)類型,而如果只是修改類型的特性屬性值,可直接保存數(shù)據(jù)到數(shù)據(jù)庫相應(yīng)的數(shù)據(jù)表中。步驟408,刪除類型對應(yīng)的視圖。步驟410,創(chuàng)建修改后的類型的數(shù)據(jù)庫表和視圖。步驟412,遞歸刪除所有父類型對應(yīng)的視圖。步驟414,遞歸生成所有父類型對應(yīng)的視圖。步驟416,保存當(dāng)前類型。步驟418,將數(shù)據(jù)存儲至數(shù)據(jù)庫中。圖8示出了根據(jù)本發(fā)明的實施例的刪除類型的流程圖。如圖8所示,根據(jù)本發(fā)明的實施例的刪除類型的流程如下步驟502,選中要刪除的類型。步驟504,刪除類型相關(guān)的數(shù)據(jù)。步驟506,刪除類型對應(yīng)的視圖。步驟508,遞歸刪除所有父類型對應(yīng)的視圖。步驟510,遞歸生成所有父類型對應(yīng)的視圖。圖9示出了根據(jù)本發(fā)明的實施例的對象、數(shù)據(jù)庫表和數(shù)據(jù)庫視圖的關(guān)系的示意 圖。如圖9所示,為根據(jù)本發(fā)明的實施例的對象、數(shù)據(jù)庫表和數(shù)據(jù)庫視圖的關(guān)系。數(shù)據(jù)模型和數(shù)據(jù)表之間的關(guān)系數(shù)據(jù)模型的類型對應(yīng)的數(shù)據(jù)表的定義規(guī)范前綴+類型名,屬性名和字段名名稱一 致,數(shù)據(jù)表中的字段相對完整且獨立;類型繼承和類型視圖的關(guān)系類型在數(shù)據(jù)庫中生成數(shù)據(jù)視圖,通過Union ALL方式將該類型下的所有子類型和 該類型聯(lián)合在一起,字段集以當(dāng)前類型的屬性集為準;舉例說明^IMW :part、mpartヽ epart H^h^M ;類型之間的關(guān)系是Part 是 mpart 禾口印art 的父類;下面的內(nèi)容是類型part對應(yīng)的視圖產(chǎn)生語句CREATE VIEW[dbo]. [plm_view_part](checkinby, checkintime, checkoutby, checkouttime, creatime,creator,1estate,lctemplate,material, modifor,modiftime,οid,owner,roid, sourceversion,versionlabel, versionnum, versionrule, ts, dr, classname)as SELECTaO. checkinby, aO.checkintime,aO. checkoutby, aO. checkouttime, aO. creatime, aO. creator, aO. lcstate, aO.lctemplate, aO. material,aO. modifor, aO. modiftime, aO. oid, aO. owner, aO. roid, aO. sourceversion, aO. versionlabel.aO. versionnum, aO. versionrule, aO. ts, aO. dr,
‘ part ‘ AS c IassnameFROM plm_cus_part aOUNION ALLSELECT al. checkinby, al. checkintime, al. checkoutby, al. checkouttime, al. creatime, al. creator, al. Icstate, al. lctemplate, al. material, al. modifor, al. modiftime, al. oid, al. owner, al. roid, al. sourceversion,al. versionlabel, al. versionnum, al. versionrule, al. ts, al. dr,' mpart' AS c lassnameFROM plm_cus_mpart alUNION ALLSELECT a2.checkinby, a2. checkintime, a2. checkoutby, a2. checkouttime, a2. creatime, a2. creator, a2. Icstate, a2. lctemplate, a2. material, a2. modifor, a2. modiftime, a2. oid, a2. owner, a2. roid, a2. sourceversion,a2. versionlabel, a2. versionnum, a2. versionrule, a2. ts, a2. dr,' epart' AS classnameFROM plm_cus_epart a2查詢模塊和類型視圖的關(guān)系前綴+ “VIEW_” +類型名的視圖。而從圖9中來看,類型包括ITEM、PART、MPART類型之間的關(guān)系是ITEM的子類型是PART ;PART 的子類型是 MPART ;類型和數(shù)據(jù)表之間的關(guān)系是類型ITEM對應(yīng)的數(shù)據(jù)表為PLM_CUS_ITEM ;類型PART對應(yīng)的數(shù)據(jù)表為PLM_CUS_PART ;類型和視圖表之間關(guān)系是類型ITEM對應(yīng)的視圖表為PLM_VIEff_ITEM ;類型PART對應(yīng)的視圖表為PLM_VIEW_PART。對象實例數(shù)據(jù)創(chuàng)建、修改、刪除、查詢的邏輯如表1所示
權(quán)利要求
1.一種版本繼承數(shù)據(jù)的動態(tài)查詢系統(tǒng),其特征在于,包括類型創(chuàng)建單元,根據(jù)多個數(shù)據(jù)對象的版本繼承關(guān)系,將所述多個數(shù)據(jù)對象進行分類,并生成對應(yīng)的多個數(shù)據(jù)類型;數(shù)據(jù)庫創(chuàng)建單元,為每個數(shù)據(jù)類型的數(shù)據(jù)對象生成對應(yīng)的數(shù)據(jù)庫表,其中,所述數(shù)據(jù)庫表中包含所述數(shù)據(jù)對象的版本數(shù)據(jù);數(shù)據(jù)庫視圖創(chuàng)建單元,根據(jù)所述版本繼承關(guān)系,生成對應(yīng)于每個所述數(shù)據(jù)庫表的數(shù)據(jù)庫視圖;實時處理單元,在數(shù)據(jù)對象被編輯時,將對應(yīng)的數(shù)據(jù)庫表進行實時更改,以實時更改對應(yīng)的數(shù)據(jù)庫視圖;以及查詢單元,生成對應(yīng)于所述數(shù)據(jù)庫視圖的查詢語句,并通過運行所述查詢語句獲取對應(yīng)的數(shù)據(jù)對象。
2.根據(jù)權(quán)利要求1所述的版本繼承數(shù)據(jù)的動態(tài)查詢系統(tǒng),其特征在于,所述版本數(shù)據(jù)包括數(shù)據(jù)對象的至少一個版本信息、以及對應(yīng)于每個所述版本信息的至少一個版次信息。
3.根據(jù)權(quán)利要求1或2所述的版本繼承數(shù)據(jù)的動態(tài)查詢系統(tǒng),其特征在于,所述類型創(chuàng)建單元還包括父類型確認子單元,確定所述數(shù)據(jù)類型的父類型;屬性移植子單元,復(fù)制所述父類型的所有數(shù)據(jù)屬性,并導(dǎo)入所述數(shù)據(jù)類型。
4.根據(jù)權(quán)利要求3所述的版本繼承數(shù)據(jù)的動態(tài)查詢系統(tǒng),其特征在于,還包括編輯單元,對所述數(shù)據(jù)類型進行編輯操作,所述編輯操作包括修改或刪除所述數(shù)據(jù)類型。
5.根據(jù)權(quán)利要求4所述的版本繼承數(shù)據(jù)的動態(tài)查詢系統(tǒng),其特征在于,數(shù)據(jù)庫視圖創(chuàng)建單元還包括父類型刪除子單元,在生成對應(yīng)于所述數(shù)據(jù)庫表的所述數(shù)據(jù)庫視圖之后,刪除所述數(shù)據(jù)類型對應(yīng)的父類型的數(shù)據(jù)庫視圖,并遞歸刪除所述數(shù)據(jù)類型的祖先類型對應(yīng)的數(shù)據(jù)庫視圖;以及父類型創(chuàng)建子單元,為所述數(shù)據(jù)類型的祖先類型遞歸創(chuàng)建對應(yīng)的數(shù)據(jù)庫視圖。
6.一種版本繼承數(shù)據(jù)的動態(tài)查詢方法,其特征在于,包括步驟202,根據(jù)多個數(shù)據(jù)對象的版本繼承關(guān)系,將所述多個數(shù)據(jù)對象進行分類,并生成對應(yīng)的多個數(shù)據(jù)類型;步驟204,為每個數(shù)據(jù)類型的數(shù)據(jù)對象生成對應(yīng)的數(shù)據(jù)庫表,其中,所述數(shù)據(jù)庫表中包含所述數(shù)據(jù)對象的版本數(shù)據(jù);步驟206,根據(jù)所述版本繼承關(guān)系,生成對應(yīng)于每個所述數(shù)據(jù)庫表的數(shù)據(jù)庫視圖; 步驟208,在對數(shù)據(jù)對象進行編輯時,將對應(yīng)的數(shù)據(jù)庫表進行實時更改,以實時更改對應(yīng)的數(shù)據(jù)庫視圖;步驟210,生成對應(yīng)于所述數(shù)據(jù)庫視圖的查詢語句,并通過運行所述查詢語句獲取對應(yīng)的數(shù)據(jù)對象。
7.根據(jù)權(quán)利要求6所述的版本繼承數(shù)據(jù)的動態(tài)查詢方法,其特征在于,所述版本數(shù)據(jù)包括數(shù)據(jù)對象的至少一個版本信息、以及對應(yīng)于每個所述版本信息的至少一個版次信息。
8.根據(jù)權(quán)利要求6或7所述的版本繼承數(shù)據(jù)的動態(tài)查詢方法,其特征在于,在所述步驟202中,還包括步驟2002,確定所述數(shù)據(jù)類型的父類型;步驟2004,復(fù)制所述父類型的所有數(shù)據(jù)屬性,并導(dǎo)入所述數(shù)據(jù)類型。
9.根據(jù)權(quán)利要求8所述的版本繼承數(shù)據(jù)的動態(tài)查詢方法,其特征在于,還包括 對所述數(shù)據(jù)類型進行編輯操作,所述編輯操作包括修改或刪除所述數(shù)據(jù)類型。
10.根據(jù)權(quán)利要求9所述的版本繼承數(shù)據(jù)的動態(tài)查詢方法,其特征在于,所述步驟206 之后,還包括步驟2006,刪除所述數(shù)據(jù)類型對應(yīng)的父類型的數(shù)據(jù)庫視圖,并遞歸刪除所述數(shù)據(jù)類型的祖先類型對應(yīng)的數(shù)據(jù)庫視圖;步驟2008,為所述數(shù)據(jù)類型的祖先類型遞歸創(chuàng)建對應(yīng)的數(shù)據(jù)庫視圖。
全文摘要
本發(fā)明提供了一種版本繼承數(shù)據(jù)的動態(tài)查詢系統(tǒng)和方法,該系統(tǒng)包括類型創(chuàng)建單元,根據(jù)多個數(shù)據(jù)對象的版本繼承關(guān)系,將多個數(shù)據(jù)對象進行分類,生成多個數(shù)據(jù)類型;數(shù)據(jù)庫創(chuàng)建單元,為每個數(shù)據(jù)類型的數(shù)據(jù)對象生成對應(yīng)的數(shù)據(jù)庫表,其中包含數(shù)據(jù)對象的版本數(shù)據(jù);數(shù)據(jù)庫視圖創(chuàng)建單元,根據(jù)版本繼承關(guān)系,生成數(shù)據(jù)庫視圖;實時處理單元,在數(shù)據(jù)對象被編輯時,將對應(yīng)的數(shù)據(jù)庫表進行實時更改,以實時更改對應(yīng)的數(shù)據(jù)庫視圖;以及查詢單元,生成對應(yīng)于數(shù)據(jù)庫視圖的查詢語句,并通過運行查詢語句獲取對應(yīng)的數(shù)據(jù)對象。通過本發(fā)明的技術(shù)方案,可以有效地改進有父子關(guān)系類型的數(shù)據(jù)查詢性能,降低開發(fā)人員對查詢進行的SQL字符串程序編寫難度。
文檔編號G06F17/30GK102402626SQ20111044875
公開日2012年4月4日 申請日期2011年12月28日 優(yōu)先權(quán)日2011年12月28日
發(fā)明者王玉林 申請人:用友軟件股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1