一个简单的多级分类思路 假如有个三级分类是这样: -苹果 --小苹果 --大苹果 ---北方大苹果 ---南方大苹果 从用户角度考虑,选择及搜索时可能出现的情况: 苹果_* 苹果_大苹果_* 苹果_大苹果_南方大苹果_* 假如苹果代表A,大苹果代表B,南方大苹果代表C,每条数据的索引方式可以分两种: 1. A+B+C+A_B+A_B_C 2. A+A_B+A_B_C 前者我可以任意选取某个子分类作为单独的标签进行筛选,同时其他子分类为此标签时也可同时搜索。当指定为苹果-大苹果分类下的标签时,我则可以使用A_B索引来筛选,而过滤掉单独B可能包含的其余二级分类结果。 后者每个子项必须所为独立的分类来看待,即便另外一个二级分类中包含“南方大苹果”,当我只选取“南方大苹果”标签时,也只能读取某一个二级分类下的“南方大苹果”,而不能包含另一个分类中的数据。 优缺点显而易见,前者可筛选范畴大,但需要创建的索引多,占用数据库较大。后者则较为轻便,但每个子分类必须独立,无法与其余子分类互通。 我目前初步觉得用第二个方案比较合适,毕竟一般多级分类子项也不会互通。但这个问题还要进一步考虑一下,不行在后面标签系统也可以做调整。