关于树型结构,这样设计数据库会不会出问题

bzscs 2005-02-21 08:05:50
id title pid IdList
1 CUP 0 1
2 Intel 1 1,2
3 P4 2.8e 2 1,2,3
4 Xp3000 5 1,5,4
5 Amd 1 1,5
6 主板 0 6
7 华硕 6 6,7
8 技嘉 6 6,8
9 C4 3.0G 2 1,2,9

IdList表示从根到自身的ID序列,用逗号分隔,目的是查询数据库的时候,只用一句“select * from [Product] order by [IdList]”就可以得到树型结构的顺序,以上为例,可以得到

1 CUP 0 1
2 Intel 1 1,2
3 P4 2.8e 2 1,2,3
9 C4 3.0G 2 1,2,9
5 Amd 1 1,5
4 Xp3000 5 1,5,4
6 主板 0 6
7 华硕 6 6,7
8 技嘉 6 6,8
...全文
124 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
bzscs 2005-02-23
  • 打赏
  • 举报
回复
就是有点担心啊

象这种情况会不会有问题啊,我都快空白了
8 技嘉 6 6,8,54
9 C4 3.0G 2 1,2,91
8 技嘉 6 6,8,23,34
9 C4 3.0G 2 1,2,111,

venket 2005-02-22
  • 打赏
  • 举报
回复
我曾经在我们公司的树型菜单中,见过我觉得这样是可以的,他可以实现无限级别的菜单
631799 2005-02-22
  • 打赏
  • 举报
回复
节点移动呢?
bzscs 2005-02-22
  • 打赏
  • 举报
回复
会出啥问题呀,能否指出一种情况,使不在预料中的结果出现?
lishengyu 2005-02-21
  • 打赏
  • 举报
回复
有问题
bzscs 2005-02-21
  • 打赏
  • 举报
回复
同一父节点下各子节点的排序,可以另加字段表示,

我现在担心的是会不会有一种特殊的[IdList]的排列,会打乱“select * from [Product] order by [IdList]”得到的顺序

我想用[IdList]这种ID序列结构,还有各好处是可以方便查询某个节点的所有祖先节点,例如“select id,title from [Product] where id in(select [IdList] from [Product] where id= @id)”
chenchangfu 2005-02-21
  • 打赏
  • 举报
回复
我认为不太好
维护表是比较费劲
如维护同一结点下的顺序,可以家一字段,在同一接点派系
qltouming 2005-02-21
  • 打赏
  • 举报
回复
可以啊,不过order by后面最好处理一下去掉逗号

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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