原来分析购物网站,发现最重要的技术就是分类的数据结构。物品是发布在某一个分类(不一定是叶子节点的分类)下面的。先不谈分类的建设,我们先谈谈物品的查询。
- 查询某个分类下的所有物品,当然分页显示。
- 查询某个分类以及其全部1级子分类下的所有物品。
- 查询某个分类以及其全部2级子分类下的所有物品。
- ......
- 查询某个分类以及其全部n级子分类下的所有物品。
事实上,在购物网站中,一般只需要做到2级或者3级子分类下的物品的查询就可以了。但是更深的查询总是需要的,所以怎么样高效地处理这个请求呢?我们可以维护另一表,存储了节点的所有子结点?
再来谈谈分类的操作(购物网站后台管理员的动作)。
这很简单,因为分类的操作并不是密集型操作,分类的数量也不可能足够多。这样,我认为使用Ajax会比较好。分类就是一棵树,服务器端也很容易与客户端对应的DOM接口。
即使查询很难处理,我们可以限制客户的查询欲望,让他们先尽可能深的自己找出正确的分类,让他们相信,他们的思考比计算机的思考来得可靠。分类信息是很令人感兴趣的,因为人们总是报怨找不到他们想要的信息(他们其实是在报怨信息太少,而事实并不是)。
— William Reply