2011-11-15 130 views
0

我有一个具有无限子类别和产品的类别树。我想搜索某个类别的产品,包括所选猫的子类别中的产品。MySQL分类层次结构搜索

P.S.我接受PHP解决方案。

这是我的表格。

`cat` (
    `id` int(8) NOT NULL AUTO_INCREMENT, 
    `title` varchar(255) COLLATE utf8_general_ci NOT NULL, 
    `parent` int(8) NOT NULL DEFAULT '0', 
    PRIMARY KEY (`id`) 
) 

`product` (
    `id` int(8) NOT NULL AUTO_INCREMENT, 
    `title` varchar(255) COLLATE utf8_general_ci NOT NULL, 
    `cat` int(8) NOT NULL DEFAULT '0', 
    PRIMARY KEY (`id`) 
) 

回答

0

嵌套集合是这样 http://www.fliquidstudios.com/2008/12/23/nested-set-in-mysql/ (从谷歌搜索“嵌套组的MySQL PHP”找到了一个随机结果)的一个非常标准的方式

你批量计算上一些额外的列您类别表,然后对所有“子类别”(以及子子类别:)进行查询变得容易。

+0

请注意,如果您正在使用SQL数据库,嵌套结构是一个巨大的难题。 – NullUserException

+0

有点含糊,对他们有什么痛苦?对我来说,至少他们工作得很好。 – barryhunter

+0

插入和删除是痛苦的。 – Bytemain