主页 >> 系统架构 > B2C产品属性逐层筛选模块架构

2013/04/07 | 星期日 分类:系统架构 | 没有评论 标签: , | 作者: | 1,611 views

B2C产品属性逐层筛选模块架构

本文简单介绍B2C产品属性逐层筛选模块架构,笔者的经验之谈。

产品属性筛选,适合中小型网站处理,效率不高,但至少实现了电商商品分类页属性逐层筛选功能,先看属性筛选截图1:.
attrbute

大型网站:京东jd.com 兰亭集序:lightinthebox.com 在这方面是这么处理的,2013年以前也是有数量逐层筛选消减的,可目前这两大网站是:属性可以逐层筛选,但不消减、对应属性亦没显示产品数量。

看下属性表的数据设计,如下仅列出基本数据表结构:

属性表 attribute 基本表,存储比如手机:系统、屏幕、尺寸
attr_id 自增,属性id
cat_id 分类ID
attr_name 属性名
attr_value 属性值

属性值表 attribute_value 存储比如手机系统:Android、WindowsPhone、IOS
av_id 自增,属性值id
attr_id 属性id
av_value 属性值

#产品属性表 attr_info 其中之一用来查询,筛选后其余属性值id剩余产品数目
idx_id 自增
cat_id 分类
goods_id 产品id
av_id 属性值id
attr_id 属性归类id
av_value 属性值
attr_value 属性归类值

#属性归类表 attr_group 筛选条件
goods_id 产品ID
av_ids 主要属性的av_id组合,‘,’分割

假如筛选N属性,现在传过来的是$av_ids属性数组

使用子查询效率不高,比较耗资源,但对于几万产品、几十万产品的中小型站点来说,目前还是可以应付得来的。.

注意:.
1.需要做在页面级别的缓存,比如smarty自带的缓存,每访问一次、每筛选一次页面都缓存、一般是24小时,允许统计数据有少量出入(当天上架的产品)。
2.必要的时候使用memcached,以减少数据库的链接查询,这个地方是B2C网站经常崩溃的地,需要着重检测。

  • 本文目前尚无任何评论.
    1. 本文目前尚无任何 trackbacks 和 pingbacks.