[發明專利]應用于在線教育系統中的樹形數據結構的建立方法在審
| 申請號: | 201410116867.3 | 申請日: | 2014-03-26 |
| 公開(公告)號: | CN103942267A | 公開(公告)日: | 2014-07-23 |
| 發明(設計)人: | 王健 | 申請(專利權)人: | 上海德上網絡科技有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 北京超凡志成知識產權代理事務所(普通合伙) 11371 | 代理人: | 吳開磊 |
| 地址: | 200000 上海市崇明縣城橋鎮秀*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 應用于 在線 教育系統 中的 樹形 數據結構 建立 方法 | ||
技術領域
本發明涉及數據處理技術領域,尤其涉及一種應用于在線教育系統中的樹形數據結構的建立方法。
背景技術
在線教育系統中,存在很多樹形的數據。舉例來說,課程分類就是一個樹形結構,根節點為“全部分類”,在根節點下有一級分類節點如“國學、情商、藝術與品味修養、職業規劃、就業技能、創業創新”等等子分類欄目,而在國學這個子欄目下,又可細分為“名著賞析、孫子兵法智慧、周易智慧、五行學說”等等子欄目分類,依次類推。再舉一個例子,學校的組織結構,也就是學校下的各個院系,院系下細分的系和班級以及學校的各個行政架構上的部門,班級下的學生,學校組織部門下的老師,這也是在在線教育系統中需要處理的層級比較深和數據量比較大的一個樹形數據結構。此類樹形的數據結構,從根開始,每級有一個或者多個子分類,而每個子分類,又包含著層數不確定的更多的子分類。傳統的關系數據庫一般是基于二維關系建立,比如我們常用的MySQL/Oracle/SQL?Server等,按照傳統的方法存儲這種樹形數據記錄,應用上非常繁瑣和不靈活。通常地,傳統的數據結構在每條記錄上都存儲一個ParentId(即數據父節點與子節點的父子關系)的方法(Adjacency?List)建立,由于層級和子節點個數的不確定性,導致只能限制子節點的層級深度,然后在查詢類似“當前節點屬于第幾層;當前節點有多少個子節點(含子節點的子節點);如何快速的將一個子節點(含子節點)移動到另外一個節點上;”等問題時,傳統的技術方案需要大量的數據庫查詢和運算,因此受到效率影響,很難做到無限層級的樹形數據結構。
為了便于理解,現以圖4的數據為例闡述上述的技術要領。我們采用每條記錄中增加一個Parent?Id來記錄節點的父子關系,數據表如圖5所示。這種簡單設計能夠非常直觀和方便的查看數據,也比較容易理清數據之間的父子關系。但是缺點也非常突出,對樹形結構數據的任何創建、查詢、刪除、修改操作都主要依賴于遞歸操作,舉個具體應用上的例子,yellow屬于第幾層?需要經過的遞歸過程是:
Select*from?table?where?name=’yellow’
Select*from?table?where?node_id=yellow_parent_id
Select*from?table?where?node_id=yellow_parent_id_parent_id
…
理論上講,由于每一個操作都依賴上一步操作的結果,因此,每次的數據庫查詢都是必須的,必須找到當前的節點的父節點,再找到父節點的父節點直至遞歸到根節點為止。此遞歸操作來完成數據庫增、刪、改、查的查詢效率太低,尤其在一個嵌套稍深的應用場景下,每次數據庫的操作和I/O都會帶來極大的時間開銷,且難以支持靈活的數據擴展和無限深度的子節點級聯。
發明內容
本發明的目的在于提供一種應用于在線教育系統中的樹形數據結構的建立方法,以解決上述問題。
為了達到上述目的,本發明的技術方案是這樣實現的:
應用于在線教育系統中的樹形數據結構的建立方法,包括如下步驟:
從根節點開始,按照從上到下,從左至右的順序,按照遞增數列規則依次給每一個節點定義一個用于識別的左編號數值Lft和右編號數值Rgt數值;
根據節點的左編號數值Lft和右編號數值Rgt來查詢所述節點的子節點個數,所述查詢公式為:ROUND((Rgt-Lft-遞增量)/2);
創建樹形數據存儲結構,建立與所述樹形數據存儲結構匹配的關系數據表。
與現有技術相比,本發明實施例的優點在于:
首先,節點在左、右編號數值存在的情況下,可以利用查詢公式ROUND((Rgt-Lft-遞增量)/2)快速的查詢數據庫,與傳統的利用遞歸查詢數據庫的方法相比,大大提高了對樹形數據的增刪改查操作的效率。
其次,在在線視頻教育系統中,通過節點左、右編號數值在關系數據庫中存儲樹形數據結構來實現課程欄目分類子欄目的無限級聯;
最后,在在線視頻教育系統中,通過節點左、右編號數值在關系數據庫中存儲樹形數據結構來實現組織結構的無限級聯。
附圖說明
圖1為本發明實施例一提供的應用于在線教育系統中的樹形數據結構的建立方法的流程示意圖;
圖2為本發明實施例一提供的應用于在線教育系統中的樹形數據結構的建立方法中簡單有限級的樹形數據結構示意圖;
圖3為圖2的關系數據表;
圖4為現有技術中例舉的一種簡單有限級的樹形數據結構示意圖;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于上海德上網絡科技有限公司,未經上海德上網絡科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410116867.3/2.html,轉載請聲明來源鉆瓜專利網。





