当前位置: 首页 > PHP > 做产品库筛选的思路与方法

做产品库筛选的思路与方法

  • 分类:PHP
  • 发布时间:2016-05-06 10:21:20
  • 作者:Ferman
  • 查看数: 111

        下面的几个表中,黄色背景的是必须有的字段。其他字段根据业务需求。这几个表的关系有点复杂,而且最后的搜索方式也不合理,这也是跟历史有关。其实做筛选有很多的方式,比如有这样一个思路,每类产品设置固定的必有参数,其他的个性参数自由添加。该产品所有参数对应的参数值序列化到一个字段中。这样的话详情页就非常简单了吧。但是搜索页怎么办呢,一个参数对于一张表,比如说产品重量就是一张表。 然后这张表中不同的参数值对应出不同的商品id。按一类产品20个参数,也就20张表,那你说有很多类产品,表太多了吧。那你一类产品放在一个库里面总可以了吧。这样搜索就简单多了,搜索出多个条件结果intersect一下就ok。如果有新的产品库设置最好用新思路,因为我没有这个实例,所以就从以前的做法中给个例子


①参数类别表 product_param_type 

前三个参数必有,subcategoryid:产品类别 比如:电视、洗衣机等,sort_order的作用,你猜。


②参数基础表 product_param 

其中unit是指参数的单位如:米。paramtypeid 就是上一张表的id,意思就是,比如 系统、存储、cpu属于配置参数,重量、尺寸可能属于外形参数。

③参数值表product_param_option

比如下面的3286这个数字后面对应了不同的系统,在前台展示的时候就是根据product_param表中的name对应的product_param_option中的value来进行选择的。 有时候value的值是个数字,那么数字后面要跟product_param表中的unit。即单位。sort_order,重要性排序。

④ 范围类参数值表 product_param_range

这个表是从product_param_option跑出来的,并且在url中该参数前要添加‘s’最后的参数就是 's'+sid,否则在筛选的时候可能会与product_param_option中的id产生冲突,如产品库url:

http://price.ea3w.com/air-condition_index/subcate345_750_list_m3000_s1804_p10699_p10695_1.html

用过上面的几张表就可以将产品库列表页的参数都显示出来了。如下:

但是筛选的时候,需要将没有产品的选项变灰,如下所示:

这就需要另外一张表了,这张表中的数据是将每一个产品的所有参数都跑出来,这样选择某个参数后,用like 查询param字段(记得同时查出品牌id,可以将没有的品牌变灰),然后进行循环结果集,将结果集中重复的筛选项去掉,那么剩下的这些筛选项(说明这些筛选项下有产品)就是有链接的,其他的所有筛选项就是没有链接的,就将其处理成变灰。表结构如下:


转载时请以 超链接的形式 注明:转自Ferman

                  

About me