Welcome 微信登录

首页 / 网页编程 / ASP.NET / ASP.NET实现无限级分类

ASP.NET实现无限级分类2011-03-19 博客园 索马里海盗在我们做网站的时候,不管是新闻系统还是产品系统,或者是博客,论坛等等,都少不了与分类打交道。有时候我们经常说分几级分类,一般分2-3级,具体视情况而定,但是这样的做法非常死板,不够灵活,因为不是任何类别下的分类都有子类,孙类……,为了能够使分类灵活,我们经常采用的是无限级分类。

无限级分类主要思路有两种:一是使用递归;二就是非递归,我比较喜欢这种,毕竟效率是关键。

表结构设计:

首先建立一个分类表Category:

设计如下:

--ParentID 父节点的ID

--CategoryPath 节点路径

--CategoryName 类别名称

--CategoryLevel 类别级别(主要为了操作方便才设置此字段)

--CategoryDescn 这个是类别描述,没啥好说的了,主要做搜索优化的时候用到,填充mata关键字

数据显示如下(仅仅是个例子,现实中可能不这么分):

水果--包括苹果,橘子;

苹果又分为红富士和乔纳金两个品种;

乔纳金又分为山东和北京的乔纳金;

山东乔纳金又分为济南乔纳金……

[图2]

产品表Product:

--CategoryID没啥好说的,主要是作为Category表的外键,注意有Categorypath这个字段的用意。