今天看segmentfault看到别人的无限极分类的高效思路(顺便理理自己的思路)
平时设计无限极分类如下 idparent_idcategory…10无纺面料21无纺布31印花布42涤纶无纺布 查询分类或者面包屑(无纺布面料>无纺布>涤纶无纺布) 将该表重新构建成左右ID idparent_idcategoryleftIdrightId10无纺面料11921无纺布21031印花布111442涤纶无纺布36 查询的时候就只要根据leftId和rightId和parent_id 来查找 但是插入数据库的时候都要对父级+1,冒泡+1; 另外一种设计 idpathcategory…10无纺面料20,1无纺布30,1印花布40,1,2涤纶无纺布 这样设计的话,就只要将path字段用,分割;然后where id(1,2) SELECT *,concat(path,',',id) AS paths FROM table ORDER BY paths 也许可以换个mongodb数据库 { "id": id, "category" : "无纺布面料", "path": [ { "id":id, "category":"无纺布", "path":[ { "id":id, "category":"涤纶无纺布", "path":[] } ] }, { "id":id, "category":"印花布", "path":[], } ] } 由于无限级分类一般来说改动不大,只是查询;