一个无限级目录的表,有三个字段,ID,ParentID,Name。还有一个放文章的表,它的父ID是目录表的ID字段。
现在目录表中有几个顶级的目录,也就是没有ParentID的。比如有目录A,和目录B。这两个顶级目录下面还有很多子目录,子目录下面还有子目录...,每个目录下面都有很多文章。
问题是我怎样知道 某个顶级目录 比如目录A 下面都有哪些文章?如果以目录A的ID来查找的话,那么目录A下面的子目录里的文章就无法找到。
多做冗余
可以增加一个IDList列..比如
0/1/2/,,代表当前id在0目录下的1目录下的2目录下,
查询的时候可以 like '0/1/2/*'来做
当然这也会带来插入以及更新的麻烦,不过用like操作也都一样
如果需要显示上的方便还可以增加一个nameList..
xuexi
看到你的帖子,我马上动手做了个例子(用C#)做的
希望对你有用
其实原理都差不多,你可以参考一下,如果觉的有用就顶一下吧
http://www.cnblogs.com/seaandsky/archive/2008/11/24/1339949.html
SELECT ID, ParentID, Name, LEVEL
FROM tab1
START WITH ID = A
CONNECT BY PRIOR ID = ParentID