看看这个表结构,如何能实现这样两个功能?

wang0628 2004-01-09 03:33:53
这是一个分类表,字段值有:
ID int 主码,自增
ParentID int 父ID
Name char 分类名

这个分类理论上可以有无数层
其中根类的 ParentID是 0
子类的ParentID就是它的父类的ID
比如根类是 英国,英国下面有英格兰,英格兰下面还可以有伯明瀚,伯明瀚下面还可以有更小的分类...

现在的问题有两个,
第一个问题是显示一个列表,子类要比父类缩进一块儿,像这样:

根类a
子类a1
子子类a11
子子类a12
子子子类a121
子子类a13
子类a2
根类b
子类b1
子类b2
子类b3
......

第二个问题是知道一个类的ID,能够找到它所相关的父类,比如知道
子子子类a121 能够依次找到 子子类a12->子类a1->根类a
...全文
24 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
kirc 2004-01-10
  • 打赏
  • 举报
回复
随便解释一下:
举个例子:
比如上面
根类a
子类a1
子子类a11
子子类a12
子子子类a121

的Code是:
0 根类a
0_1 子类a1
0_1_1 子子类a11
0_1_2 子子类a12
0_1_2_1 子子子类a121
了没???

BTW:我一直用递归来做的,发现如果修改一下速度并不慢的.
把你的递归写出来看看...
wang0628 2004-01-10
  • 打赏
  • 举报
回复
终于明白了
wang0628 2004-01-10
  • 打赏
  • 举报
回复
谢谢各位
我以前用的就是递归查询解决的这个问题,可是每次查询cpu的占用率都达到100%,所以想换一种方法,inelm(Archimond 【阿克蒙德】) , laoluo(老骆) 说的那些办法我正在研究中...
westerndata 2004-01-09
  • 打赏
  • 举报
回复
一个树形结构的处理,同意 inelm(Archimond 【阿克蒙德】)
nchen123 2004-01-09
  • 打赏
  • 举报
回复
在这里:

http://expert.csdn.net/Expert/topic/2285/2285830.xml?temp=.9370996
blueice2002 2004-01-09
  • 打赏
  • 举报
回复
做个递归查询好了
wang0628 2004-01-09
  • 打赏
  • 举报
回复
upupupupupupup!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!11
wang0628 2004-01-09
  • 打赏
  • 举报
回复
举个例子行不行?
比如上面
根类a
子类a1
子子类a11
子子类a12
子子子类a121

的Code是什么?
888228 2004-01-09
  • 打赏
  • 举报
回复
第一个问题..记录你当前的循环数,然后 输出 String(" ",循环数)就OK了.

第二个问题..同laoluo(老骆) :)
wang0628 2004-01-09
  • 打赏
  • 举报
回复
to laoluo(老骆):

请问根类的code是什么?
laoluo 2004-01-09
  • 打赏
  • 举报
回复
为了简化你的sql语句,提高性能,最好修改数据结构的设计:
ID int 主码,自增
code varchar(???) 分类编码,可以根据没一级的分类个数设定长度。
ParentID int 父ID
Name char 分类名

其中code需要特殊处理,每一级分类的code要相同长度,不够位数前面补0,每个分类的code=父分类的CODE & 本分类的code。这样你的代码就很简单了。
问题1 分级显示
首先用 select * from 表名 order by code 打开一个记录级rs
Do While Not rs.Eof
For jx=0 to Len(rs("code"))
Response.write " "
Next
Response.write rs("Name")
rs.MoveNext
Loop
问题2 就很简单了,得到一个分类的code,然后Left()函数就可以得到其所有父类的code,就可以了。
archerheyn 2004-01-09
  • 打赏
  • 举报
回复
这是一个标准的分类问题,在SQL Server2000帮助里面有很好的解答
海牛 2004-01-09
  • 打赏
  • 举报
回复
期待高手用简单的Sql语句查询······
海牛 2004-01-09
  • 打赏
  • 举报
回复
UP,,,看看

28,407

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧