這幾天研究多級樹的設計,學到了點東西,分享一下心得:
表設計:
分組表(MasGroup)
這裡面特意增加了root屬性,如果目前組是根元素的話,設定為true,主要是友善定位樹根。
使用者表(MasUser)
OK,由于每個組可以有多個子組,獨立設計了樹根組(GroupTree)
讓Grails自動建表,分組資訊會獨立存放到group-tree表中。
下面是建立目錄樹的算法,之前琢磨了好久,用到節點深度、節點兄弟等好幾種,剛剛開竅,思路是這樣:
定位一個節點,先查找有沒有子節點,有則建立ul樹枝,然後遞歸循環孫子節點,沒有則直接輸出節點。
這個跑起來之後,添加一些測試資料,能得到期望的結果,我使用了JQuery-treeview插件生成樹目錄,截圖如下:

接下來做前台。