2011-02-07 27 views
0

大家好 我在努力想辦法描述我的問題,所以我打算以iOS的Safari爲例,因爲它幾乎完全符合我想要實現的目標。iOS&sqlite,從表中返回結構化的行(如Safari瀏覽器中的書籤文件夾列表)

在safari中,如果您添加或編輯書籤,您可以選擇將書籤放入哪個文件夾.UITableViewController顯示爲具有分層文件夾列表,子文件夾/子文件夾顯示爲增加UITableViewCell縮進。下面是截圖顯示什麼我指的是:Screenshot

的書籤和文件夾存儲在一個表中的SQLite數據庫是這樣的: Screenshot

所以很容易找出哪些文件夾使用ID和父列的其他文件夾的父母。

我不能解決的是如何獲得維護這些關係(或包含相關數據)的數組/字典/集合,以便我可以在UITableViewController中使用它?

我的當前方法(返回包含文件夾名稱的NSMutableArray)執行一條SQL語句,該語句返回parent = 0或NULL的所有文件夾,然後爲每個返回的文件夾執行另一個獲取該文件夾子文件夾的SQL語句,只返回2級文件夾。我可以添加更多的陳述,但我只會回報儘可能多的水平,因爲我有發言權。我不知道是否會有0或1000級別的子文件夾,所以我需要找到一種方法,在代碼不依賴於數據的情況下執行此操作。

希望這是有道理的!如果有人能夠幫助或指引我走向正確的方向,我會非常感激 - 我覺得我可能會在這裏錯過一些明顯的東西!

回答

0

我會建議使用這個血統。

基本上就意味着你在你的數據庫有這樣的:

Node ParentNode Depth Lineage 
100  NULL  0  /
101  100   1  /100/ 
102  101   2  /100/101/ 
103  102   3  /100/101/102/ 
104  102   3  /100/101/102/ 
105  102   3  /100/101/102/ 

請參閱此鏈接的詳細信息:

http://www.sqlteam.com/article/more-trees-hierarchies-in-sql

+0

非常感謝您的回答,並在延遲道歉我回復。偉大的解決方案,實施和工作:) – Lee82UK 2011-02-23 21:40:23

相關問題