您的位置:首页 > 运维架构 > 网站架构

[电子商务网站设计] 之 分类目录

2008-09-30 09:03 435 查看
分类目录作为电子商务网站的重要入口之一,设计好坏直接关系到网站的性能。

网上大多数相关的例子都采用树(森林)状结构。

Id: 分类编号,自增整数。

Name: 分类名称

ParentId: 父分类编号

这种经典结构却并不适合电子商务网站使用,我们分析一下分类目录的使用场景。

1. 分类导航。

2. 分类搜索。

3. 分类统计。

问题就出在分类搜索和分类统计上,这两个需求都需要检索分类及其所有层次的子分类,采用树(森林)状结构时不可避免需要进行递归操作,那么对于操作性能自然有所影响,且分类搜索的使用量非常巨大,因此也会拖累整个网站的性能。

那么合理的分类目录应该采取什么样的结构呢?看一个例子。

A01 电视

  A01B01 普通电视

  A01B02 液晶电视

  A01B03 平板电视

A02 电脑

  A02B01 台式机

  A02B02 笔记本

    A02B02C01 IBM

    A02B02C02 Lenovo

    A02B02C03 AUSU

A03 家电

...

这样的结构除了可以清晰地表达分类目录之间的父子关系,最重要的是可以避免递归操作,我们使用 "like 'A01*'" 即可完成"电视"及其所有子类的搜索和统计。当然这种分类结构不能做到树(森林)状结构的无限层次,但大多数网站也不可能有那么多的分类内容,每级 99 个分类容量足以满足要求。

另外此种编码方式对于日常维护也有好处,我们不需要记住一堆不相干的数字,也避免了数据迁移时自增编号变化带来的麻烦。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: