无限级分类的数据库设计思考
2008-07-01 14:04
260 查看
无限级分类的数据库设计
简单需求分析:
1.实现无限级分类。
2.实现无限级链接导航
3.实现逐级分类下各条信息的查询,包括最多浏览量,最多评论量,最新信息。
4.随意转移子分类到任何级别而不用修改分类下的信息表
5.使用最少的参数得到所要的信息,URL参数最好只有一个,比如cID=1或者ID=1
6.不管多少级,只有一个PHP文件实现类列表和各种方式的信息调用。
表为两张,一张分类表,一张信息表。
信息表如下:
`ID` int(10) unsigned NOT NULL auto_increment,
`cID` tinyint(3) unsigned NOT NULL default '0',
`title` varchar(255) NOT NULL default 'No Title',
`content` mediumtext NOT NULL,
最简单的无限级分类数据表,只是设置一个parentID来判断父ID
数据表如下:
`cID` tinyint(3) unsigned NOT NULL auto_increment,
`parentID` tinyint(3) unsigned NOT NULL default '0',
`order` tinyint(3) NOT NULL default '0',
`name` varchar(255) NOT NULL default '',
这样可以根据cID = parentID来判断上一级内容,运用递归至最顶层。
缺点是只能查询最小分类下的信息。这样就不能完成需求3、4点,而第二点也勉强符合
第二种方法是设置parentID为varchar类型,将父类id都集中在这个字段里,用符号隔开,比如:1,3,6
这样可以比较容易得到各上级分类的ID,而且在查询分类下的信息的时候,可以使用如:Select * From information Where cID Like "1,3%"。这样能比较好解决需求3。不过在添加分类和转移分类的时候操作将非常麻烦。
我就说到这里,请大家讨论一下如何能够最简单的方法实现无限级分类——考虑性能,代码的简练性,前后台操作的容易性,扩展性!
简单需求分析:
1.实现无限级分类。
2.实现无限级链接导航
3.实现逐级分类下各条信息的查询,包括最多浏览量,最多评论量,最新信息。
4.随意转移子分类到任何级别而不用修改分类下的信息表
5.使用最少的参数得到所要的信息,URL参数最好只有一个,比如cID=1或者ID=1
6.不管多少级,只有一个PHP文件实现类列表和各种方式的信息调用。
表为两张,一张分类表,一张信息表。
信息表如下:
`ID` int(10) unsigned NOT NULL auto_increment,
`cID` tinyint(3) unsigned NOT NULL default '0',
`title` varchar(255) NOT NULL default 'No Title',
`content` mediumtext NOT NULL,
最简单的无限级分类数据表,只是设置一个parentID来判断父ID
数据表如下:
`cID` tinyint(3) unsigned NOT NULL auto_increment,
`parentID` tinyint(3) unsigned NOT NULL default '0',
`order` tinyint(3) NOT NULL default '0',
`name` varchar(255) NOT NULL default '',
这样可以根据cID = parentID来判断上一级内容,运用递归至最顶层。
缺点是只能查询最小分类下的信息。这样就不能完成需求3、4点,而第二点也勉强符合
第二种方法是设置parentID为varchar类型,将父类id都集中在这个字段里,用符号隔开,比如:1,3,6
这样可以比较容易得到各上级分类的ID,而且在查询分类下的信息的时候,可以使用如:Select * From information Where cID Like "1,3%"。这样能比较好解决需求3。不过在添加分类和转移分类的时候操作将非常麻烦。
我就说到这里,请大家讨论一下如何能够最简单的方法实现无限级分类——考虑性能,代码的简练性,前后台操作的容易性,扩展性!
相关文章推荐
- 数据库设计无限级分类
- 关于无限级分类数据库表结构设计问题,遍历某分类下所有产品 效率 (两张表) (一张表)
- 新闻无限级分类数据库设计
- 新闻无限级分类数据库设计
- ASP无限级分类原理、数据库结构设计、应用及相关函数
- 一个带存储过程的无限级分类数据库设计
- [收集] 各式各样的 无限级分类 的数据库设计方案
- 数据库字段设计实现无限级分类
- DbHelperV2 - Teddy的通用数据库访问组件设计和思考
- 数据库----主键设计思考
- 中小型商城系统中的分类/产品属性/扩展属性的数据库设计
- 关于数据库设计的思考(二)
- 带数据库的ajax+asp无限级分类树型结构,好东西别错过
- 数据库设计---关于建表的时候选择横表和竖表(纵表)的一点思考
- 数据库设计之主键的思考
- 【个人重构】数据库设计之深度思考
- 数据库主键设计之思考
- 文章分类标签数据库设计
- 多级分类的数据库设计
- 数据库的通用字段设计和思考优化