2014-06-24 49 views
2

最近我遇到了一個從表中找到N級兒童的問題。尋找N級兒童列表的存儲過程

讓我們說,我們有如下表的列表:

Table: **Country** 
PKCountryID 
CountryCode 
CountryName 

Table: **State** 
PKStateID 
FKCountryID 
StateCode 
StateName 

Table: **Area** 
PKAreaID  
FKStateID 
AreaCode 
AreaName 

Table: **Customer** 
PKCustomerID  
FKAreaID 
CustomerCode 
CustomerName and so on.... 

在這裏我們需要找到一種方法,通過它我們可以得到N個級別樹視圖包含所有欄

恰似

>Country 
      Country Table Column   
      Foreign Key Column of Country Table(Here : FKStateID) 
      >State 
        State Table Column   
        Foreign Key Column of State Table 

等等直到N級。

有沒有解決方法?

+0

簡單的解決方案是按需加載子節點。首先,加載所有國家(如果國家是層級中的最高級別),然後將所有國家添加到根節點。在一個國家的擴展中進行數據庫調用,以加載所選國家的所有國家並將它們附加到當前在樹視圖中選擇的國家/地區節點等。 –

回答

0

您基本上可以使用CTE創建層次結構。如果您正確構建CTE,它將根據需要加載多個級別。但是,我之前已經構建過這些代碼,並且在編寫代碼時必須非常小心,以及如何編寫代碼,否則性能可能會受到影響。

是否嘗試使用CTE來獲取信息並確定它是否符合您的需求。