树状结构的数据,如何保存在表里面?

hbcb 2004-04-10 12:24:33
比如存放目录树,要体现目录的层次和隶属关系
我想这样

table_dir
id 层次 类型 名字
1 1 目录 /
2 1.1 文件 UNIX
3 1.2 目录 home
4 1.2.1 目录 my_home
5 1.2.1.1 文件 .profile
6 1.2.2 目录 you_home
7 1.3 目录 etc

不知道这样是不是合理呢?或者其他什么方法更好些?
...全文
32 点赞 收藏 5
写回复
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sfply 2004-04-10
id 一级层次 二级层次 三级层次 类型 名字
1 0 0 0 目录 /
2 1 1 0 文件 UNIX
3 1 2 0 目录 home
4 0 3 1 目录 my_home
6 0 3 2 目录 you_home
7 1 3 0 目录 etc

如果层次不多可以用以上方式体现层次关系
如果多了就干脆用你目前的方式,在程序中多花点心思就是
回复
ice_berg16 2004-04-10
将层次设成parentId
取一个目录下的数据时只需where parentId = dirName
回复
52juanjuan 2004-04-10
如果把一个字段,做成这样,自己搞个约定如
0000
00000001这样区分就是说搞个层次字段,通过判断位数来实现,如果长度是n(比例基数)的几倍,就表示为第几层,这样也是可以的
回复
amethyst99 2004-04-10
最基本的层用0表示,
比如
id 层次 类型 名字
1 0 目录 /
2 1 文件 UNIX
3 1 目录 home
4 3 目录 my_home
5 4 文件 .profile
6 3 目录 you_home
7 1 目录 etc
层次是和前面的id号关联,第2,3,7都是同一层次,都在/目录下,4,6都在home目录下,5在my_home下
回复
amethyst99 2004-04-10
很多论坛都是树状结构的,也就是加了一个字段
回复
发动态
发帖子
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
社区公告
暂无公告