父子關系型紀錄集或者樹狀關系數據記錄集是我們在軟件開發中一種較為常見的數據組織形式。例如辦公系統中的組織架構,例如用戶系統中的省份城市區域,例如電子商務網站中的產品分類,例如留言板系統中的留言回復關系,諸如此類。
對于這一類型的數據我們常常會使用主從表或者主從字段的方法來滿足結構上的需求。
所謂主從表就是將各級數據分別存放在不同的數據表中(例如大類存放在一個數據表,小類存放在另一個數據表;又如省份存放一個數據表,城市存放在另一個數據表),但是這樣有一個問題,就是數據有多少層就必須建立多少個數據表,這樣不利于數據結構層次的擴展,比如電子商務網站中的產品,初期規劃只有大類和小類,隨著產品的增加卻發現僅有大類和小類已經無法滿足產品的分類需求,這時候會需要添加一個中類的概念,為了滿足這個變化我們就需要新增一個中類的數據表,這樣會造成較大的變更,所以我們說這種分表存放各級數據的設計有一定的局限性。而如果使用另外的一個解決辦法-主從字段-則能夠較好的解決這個問題,也就是說我們把省份和城市,產品的大類與小類,這些物理結構相同、邏輯結構不同的數據存放在同一個數據表中,以ID和ParentID兩個字段來表明各條數據之間的邏輯關系。
我們在碰到這種數據結構的時候往往希望通過一次數據操作選取以某一條數據為切入點的全部相關數據。例如訪問一條科室的信息時,希望同時呈現該科室所在的處、部門信息,又例如獲取一條BBS留言的時候,需要將其全部的回復以及各個回復的回復都一次選出,這都是最常見的需求。下面我們就介紹如何在Oralce中使用一條SQL語句從一個切入點獲取該切入點的全部相關信息。下面我們將模擬一個BBS的留言與回復數據來說明這個SQL語句
文章來源于領測軟件測試網 http://www.kjueaiud.com/