日期:2014-05-16  浏览次数:20386 次

数据库实现无限级树状分类

打算用Yii开发个CMS,需要实现树状文章分类。

网上搜索了下,基本都是在分类上添加一个父节点,在查询子父分类的时候通过程序递归的方式。

这种方式在代码实现上比较麻烦。

?

在这个基础上,我添加了一个tree键值,表的结构如下

CREATE TABLE IF NOT EXISTS `category` (
? `cid` int(11) NOT NULL AUTO_INCREMENT,
? `name` varchar(20) NOT NULL,
? `parent` int(11) NOT NULL,
? `tree` text NOT NULL,
? PRIMARY KEY (`cid`)
)

?

tree是用来描述该分类所在树上的位置

比如有一个分类的tree是 2|12|36

表面它所有在的分类 一级分类的cid为2,二级分类的cid为12

?

如果需要查询分类12下的所有分类,可以用 like “2|12|%” 查询

同样,如果想要了解分类36的父类,只要以字符“|”分割