树型分类表如何设计比较好?

jcc3120 2008-07-13 09:15:14
如题,共有四级分类.
...全文
97 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wzy_love_sly 2008-07-13
  • 打赏
  • 举报
回复
四级固定直接使用路径一类的表示方法

create table tb(id int,name varchar(10),level int,s varchar(100))
insert into tb select 1,'中国',0,null
insert into tb select 2,'河北',1,'1'
insert into tb select 3,'秦皇岛',2,'1-2'
insert into tb select 4,'海底世界',3,'1-2-3'
insert into tb select 5,'海宾浴场',3,'1-2-3'
insert into tb select 6,'山海关',2,'1-2'
insert into tb select 7,'老龙头',3,'1-2-6'
insert into tb select 8,'姜女庙',3,'1-2-6'

select * from tb where s like (select s+'-'+ltrim(id) from tb where name='河北')+'%'
and level=3

-- 0国家
-- 1省份
-- 2市
-- 3景点


id name level s
4 海底世界 3 1-2-3
5 海宾浴场 3 1-2-3
7 老龙头 3 1-2-6
8 姜女庙 3 1-2-6
wgzaaa 2008-07-13
  • 打赏
  • 举报
回复
基本上都是以上说的 自身id,上级id,自身名称,(所处级别),其他信息 的形式(3楼)
二楼也有人用,id有的用位数,有的干脆用连接符号 1_2_3_4 的形式
还有不设上级id 的,直接列出上级名称 1,'海淀','北京'
还是第一种方法好用,也有许多现成的查询例子,第二种方法会对字段作字符操作,不推荐
第二楼适用层级少查询简单的
hery2002 2008-07-13
  • 打赏
  • 举报
回复
基本的,
id, name, parentId.
还可以加上
rootid,level等等,
看自己的需求取舍,
/*
tree
-----------------
id
name
parentId -- required
rootid
level -- Optional

*/
  • 打赏
  • 举报
回复
Id Name     
1 中国 --------第一层
11 山东 --------第二层
12 广东
111 济南 --------第三层
112 青岛
121 广州
122 佛山
123 东莞
124 虎门
1111 历下区 --------第四层
1211 白云区

id的编码自己要设计好,即第一层的使用几位表示,第二层的使用几位表示 .
使用那一种还要看自己的实际情况

22,300

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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