專利名稱:一種快速生成樹結構的數(shù)據(jù)庫設計方法
技術領域:
本發(fā)明涉及計算機技術領域,更具體的說,涉及應用系統(tǒng)中的數(shù)據(jù)庫設計領域。
背景技術:
目前,在傳統(tǒng)的應用系統(tǒng)中,樹形結構數(shù)據(jù)庫的設計都是子節(jié)點記錄父節(jié)點的ID,頁面展現(xiàn)時采用遞歸的方式生產樹形結構,這種設計方法使大數(shù)據(jù)量展現(xiàn)時嚴重影響系統(tǒng)效率,有可能導致整個應用系統(tǒng)處于假死狀態(tài)。
發(fā)明內容
本發(fā)明的目的是提供一種快速生成樹結構的數(shù)據(jù)庫設計方法,所述方法在所有的應用系統(tǒng)中生成樹結構數(shù)據(jù)時采用直接排序的方式直接生成。為了解決現(xiàn)有技術存在的困難,達到上述目的,本發(fā)明提供了一種快速生成樹結構的數(shù)據(jù)庫設計方法,所述方法包括如下步驟步驟一、在具有樹狀關系數(shù)據(jù)的數(shù)據(jù)庫中創(chuàng)建二維表,包括樹結構信息表,用于記錄樹結構中的節(jié)點信息;Sort表,與所述樹結構信息表進行關聯(lián),用于記錄樹結構的節(jié)點之間的關系,每個節(jié)點具有一 Sort ID值;步驟二、對所述樹結構信息表中的節(jié)點信息進行修改時,將修改信息保存到所述樹結構信息表中,并將修改信息在Sort表中進行關聯(lián),然后在同一事務中重新排序所述Sort表,以使修改后的樹結構關系記錄在所述Sort表中;步驟三、按Sort表中的字段ID值排序讀取數(shù)據(jù),查詢樹結構信息。優(yōu)選的是,所述節(jié)點信息包括節(jié)點ID、節(jié)點名稱、其父節(jié)點ID及其其他屬性值信息的描述。優(yōu)選的是,所述Sort表中包括Sort ID、節(jié)點ID及其父節(jié)點ID、排序類型、節(jié)點所屬層級節(jié)點在所屬層級的具體位置。優(yōu)選的是,步驟二中所述的節(jié)點信息的修改包括增加和刪除子節(jié)點。本發(fā)明的有益效果是本發(fā)明所述的快速生成樹結構的數(shù)據(jù)庫設計方法,使得在所有的應用系統(tǒng)中生成樹結構數(shù)據(jù)時不采用遞歸方式,而采用直接排序的方式直接生成,提高了運行效率,節(jié)省了服務器資源;獨特的數(shù)據(jù)庫結構設計,把生成樹時占用的資源進行合理分配,把部分資源占用轉移到新增、刪除節(jié)點時,來提高生成樹結構效率;本發(fā)明所述方法大大簡化了生成樹結構的過程,用簡單的Sql查詢語句排序查詢即可。
圖I為本發(fā)明所述方法的流程示意2為本發(fā)明實施例中創(chuàng)建的二維表
具體實施例方式下面結合附圖對本發(fā)明做進一步說明,以使本領域普通技術人員參照本說明書后能夠據(jù)以實施。如圖I所示,本發(fā)明所述的快速生成樹結構的數(shù)據(jù)庫設計方法,包括如下步驟·步驟一、在具有樹狀關系數(shù)據(jù)的數(shù)據(jù)庫中創(chuàng)建二維表,包括樹結構信息表和Sort表,所述樹結構信息表用于記錄樹結構中的節(jié)點信息,所述節(jié)點信息包括節(jié)點ID、節(jié)點名稱、其父節(jié)點ID及其其他屬性信息的描述。傳統(tǒng)方式中是利用所述樹結構信息表,生成樹結構數(shù)據(jù)時采用遞歸方式,這種設計方法當大數(shù)據(jù)量展現(xiàn)時嚴重影響系統(tǒng)效率,有可能致使整個應用系統(tǒng)處于假死狀態(tài)。所述Sort表,與所樹結構信息表進行關聯(lián),用于記錄樹結構的節(jié)點之間的關系,所述Sort表中包括Sort ID、節(jié)點ID及其父節(jié)點ID、排序類型、節(jié)點所屬層級、節(jié)點在所屬層級的具體位置及外接數(shù)據(jù)表的其他信息等,所述排序類型指數(shù)據(jù)的顯示順序,例如有多個部門,可以設置這些部門的顯示順序以便于查看,設置市場部排第一位,技術部拍第二位等,如沒有排序類型,則數(shù)據(jù)按名稱的首字母順利進行自動排序。圖2為創(chuàng)建的所述二維表的舉例,比如一個公司管理層包括第一層級董事長和第二層級總經理,總經理管轄副經理A、副經理B和副經理C,為第三層級管理層,每個副經理管理的部門為第四層級,副經理A管理市場部和采購部,副經理B管理生產部和技術部,副經理C管理辦公室和人事部,這樣就形成了一個公司的簡單樹狀結構關系。所述節(jié)點信息包括,如02、副經理B、父節(jié)點為總經理、管理的是技術和生產領域等;或者是07、市場部、父節(jié)點為副經理A、主要工作任務是做市場的開發(fā)等。所述Sort表包括IV、02、屬于第三層級的第二個位置等;或VII、07、屬于第四層級的第一個位置等。所述Sort ID和sort level (所屬層級)、level code (所屬層級的具體位置)是相對應的,即屬于第一層級的第一個位置的Sort ID值是最小的,排在最前面。步驟二、對所述樹結構信息表中的節(jié)點信息進行修改時,先對所述節(jié)點信息進行修改并保存到所述樹結構信息表中,并將修改信息增加到Sort表中進行關聯(lián),然后在同一事務中調用程序重新排序Sort表,使所述Sort表記錄修改后的樹結構關系,所述的節(jié)點信息的修改包括增加和刪除子節(jié)點。增加或刪除子節(jié)點時,首先將修改后的信息保存在樹結構信息表中,并將修改信息在Sort表中進行關聯(lián),此時會有一些信息隨之變化,如刪除第二層級的總經理,則第三層級的副總經理就變?yōu)榈诙蛹墸涓腹?jié)點變?yōu)槎麻L,第四層級的各個部門就變?yōu)榈谌龑蛹墸獙ort表重新排序。此時,在同一事務中調用程序重新排序Sort表,使所述Sort表記錄修改后的樹結構關系。重新排序Sort表的代碼為
權利要求
1.一種快速生成樹結構的數(shù)據(jù)庫設計方法,其特征在于,所述方法包括如下步驟 步驟一、在具有樹狀關系數(shù)據(jù)的數(shù)據(jù)庫中創(chuàng)建二維表,包括 樹結構信息表,用于記錄樹結構中的節(jié)點信息; Sort表,與所述樹結構信息表進行關聯(lián),用于記錄樹結構的節(jié)點之間的關系,每個節(jié)點具有一 Sort ID值; 步驟二、對所述樹結構信息表中的節(jié)點信息進行修改時,將修改信息保存到所述樹結構信息表中,并將修改信息在Sort表中進行關聯(lián),然后在同一事務中重新排序所述Sort表,以使修改后的樹結構關系記錄在所述Sort表中; 步驟三、按Sort表中的字段ID值排序讀取數(shù)據(jù),查詢樹結構信息。
2.如權利要求I所述的快速生成樹結構的數(shù)據(jù)庫設計方法,其特征在于,所述節(jié)點信息包括節(jié)點ID、節(jié)點名稱、其父節(jié)點ID及其其他屬性值信息的描述。
3.如權利要求I所述的快速生成樹結構的數(shù)據(jù)庫設計方法,其特征在于,所述Sort表中包括Sort ID、節(jié)點ID及其父節(jié)點ID、排序類型、節(jié)點所屬層級節(jié)點在所屬層級的具體位置。
4.如權利要求I所述的快速生成樹結構的數(shù)據(jù)庫設計方法,其特征在于,步驟二中所述的節(jié)點信息的修改包括增加和刪除子節(jié)點。
全文摘要
本發(fā)明公開了一種快速生成樹結構的數(shù)據(jù)庫設計方法,所述方法包括如下步驟步驟一、在具有樹狀關系數(shù)據(jù)的數(shù)據(jù)庫中創(chuàng)建樹結構信息表和Sort表,所述樹結構信息表用于記錄樹結構中的節(jié)點信息;所述Sort表與所述樹結構信息表進行關聯(lián),用于記錄樹結構的節(jié)點之間的關系,每個節(jié)點具有一Sort ID值;步驟二、對所述樹結構信息表中的節(jié)點信息進行修改時,將修改信息保存到所述樹結構信息表中,并將修改信息在Sort表中進行關聯(lián),然后重新排序所述Sort表,以使修改后的樹結構關系記錄在所述Sort表中;步驟三、按Sort表中的字段ID值排序讀取數(shù)據(jù),查詢樹結構信息。本發(fā)明所述方法提高了運行效率,節(jié)省了服務器資源。
文檔編號G06F17/30GK102902811SQ20121040140
公開日2013年1月30日 申請日期2012年10月19日 優(yōu)先權日2012年10月19日
發(fā)明者劉欣茹 申請人:北京金和軟件股份有限公司