嗨, 大家好: 网站在新年后正式开通,欢迎大家加入我们,共同维护一个良好氛围的中国技术社区。 欢迎举报不良帖子,欢迎提供建议。
我们的QQ群:136102234,欢迎进群找答案,里边会有很多资深的大师们。 point overflow

我有一个简单的文章分类表,主要结构如下
id 父id 标题 1 0 所有项目 2 1 PHP 3 1 Mysql 4 2 ThinkPHP ... 诸如此类。应该是很常见的目录结构吧
意思就是所有项目为一级、PHP和Mysql为其二级、ThinkPHP为PHP的三级目录这样

那么问题来了,假设我现在只知道id=4这么一个数据,请问我要如何列出例如 所有项目 >> PHP >> ThinkPHP
这样的面包屑导航呢?

当然我知道用循环可以列出来,但总感觉浪费性能。是否有更快捷的方法呢?
没有搜索到类似问题的答案,也许是我关键词用得不够合理。最终无奈提问,先谢过各位不吝赐教

提问了 2016-06-20 11:38:25

jkant's gravatar image

jkant ♦♦
11130137138
采纳率: 3%


基本每个网站都会有这类问题。

记录分享方案:

单独做表或者新增列,保存信息为每个类的上层id,这样查询起来只需要找到对应的id的列就可以。缺点是列冗余1

Anoxia的回答: 再加一个字段,新增子分类的时候找出所有父级分类生成面包屑。
当然这个字段里面存的数据可以灵活存储,不一定要生成固定的面包屑。你可以将其生成数组,josn或者序列化以后存起来,然后取出来之后实时生成面包屑,以应对面包屑灵活生成和改变。

其中最重要的思想是新增子类的时候将其父类数据存起来,也是类似静态缓存的原理。

永久链接

已回答 2016-06-20 11:41:19

jkant's gravatar image

jkant ♦♦
11130137138
采纳率: 3%

你的回答
切换预览

关注这个问题

邮件:

登录之后,你可以在这里订阅任何更新。

RSS:

回答

回答和评论

Markdown基本语法

  • *italic* or _italic_
  • **bold** or __bold__
  • 链接:[文本](http://url.com/ "标题")
  • 图片?![alt 文本](/path/img.jpg "标题")
  • 编号列表: 1. Foo 2. Bar
  • 如果想要换行,只需要在前一行结尾处插入2个空格即可。
  • 支持基本HTML标记

问题标签:

×72
×1

已提出的问题: 2016-06-20 11:38:25

问题浏览量: 1,010 次

最后更新: 2016-06-20 11:41:19