About Tree something

Jan 7, 2009 at 5:36 AM
Edited Jan 7, 2009 at 7:01 AM
I can not use english to explain this.so use chinese....

假设有一种tree结构的表。有Id,和parentId两个字段。但是只有2层目录结构。

目录1
   ---子目录1
   ---子目录2
   ---子目录3
目录2
   ---子目录4
   ---子目录5
   ---子目录6
目录3
   ---子目录7
   ---子目录8
  ....

------------------------------------------------------------
如果想遍历目录结构,用SQL 写有一种 INNER JOIN 自己的方法,如:

"SELECT T1.ApplicationID, T1.ID, T1.Name, T1.Caption, T1.Type, T1.ToolbarLevel, T1.ParentID, T1.ButtonStyle, T1.FollowSeperated, T1.Picture, T1.Checked, T2.Name AS ParentName FROM ToolbarSchema T1 INNER JOIN ToolbarSchema T2 ON T1.ParentID = T2.ID AND T1.ApplicationID = T2.ApplicationID WHERE T1.ApplicationID = 1 AND T1.Type = @Type ORDER BY T1.ID";

这样的写法有个好处就是如果目录很多的话,只需要查询一次。

------------------------------------------------------------

提出这个问题,仅仅是发表一下自己的观点。觉得如果有那麽内置一种方法可以执行这种自己inner join查询岂不是方便。哈。要不还要写一遍inner join的class。

不过我没有仔细想这样会有什么衍生的问题:)

------------------------------------------------------------

不过关键的问题是,按照一般的方法也不是很耗费效率,因为毕竟需要大量遍历的情况不是很多。

-----------------------------------------------------------

其实就是一种按照目录结构的select的排序法。
Coordinator
Jan 9, 2009 at 7:14 AM
不值得做,一般情况下,效率不会成为问题,如果它真的成为瓶颈了,写一个Join Class也不难。