首先多条件筛选大家都知道,先上图:
此图中有不少属性,属性对应一些值,熟悉cms的同学都知道,其实无论是属性还是属性值都应该能从后台动态添加的(这个问题不在此讨论),然后前台显示时需要进行点击筛选,筛选实现的功能无非是接收参数,然后拼接sql语句,然后我现在在这里想说的是拼接后sql处理的问题,一般来说sql形式多种多样,例:
1.http://search.jd.com/search?keyword=%E8%A1%AC%E8%A1%AB%20%E5%A5%B3&enc=utf-8&qrst=1&ps=addr&rt=1&stop=1&sttr=1&ev=8635_106756%40&uc=0#select
最原始,最好处理,看去也大概知道是什么参数,但太长了,听说也不利于seo?
2.http://www.51aspx.com/CodeList/1!0!0!0!0!0!0!0!0!-1i4
应该是用了重写,地址变短,但仍然不够好看,并且无论有没有选那一项都好,也会带默认参数
3.http://www.58dm.com/list/guochan-2015-rexue
大概也是用了重写,地址变短,一看就知道是 国产,2015,热血,相比上面2的地址处理来说我认为好些,这个在不选某项的情况下,不会再带多余的参数,选哪个带哪个。(我觉得这种地址最好了,这里-应该可以换成/)
问题是这里,看两个对比地址:
http://www.58dm.com/list/guochan-rexue
http://www.58dm.com/list/guochan-guoyu
两地址的区别在于最后那个参数,一个是剧情是热血,一个是配音是国语。我现在的重写如果用来这里判断(没用流行的重写组件,自己拦截了一下正则处理),单从拦截的数据来看,是无法知道rexue到底是剧情?还是配音?还是状态还是年份?的值?
有人说接收参数之后,遍历分类,找到rexue此值对应的属性,再查找数据,这,到底不爽。。。。
各位判断一下,还是说如果用rewrite组件就能识别到底这个参数是什么?
帖子比较长,我描述得可能也不清楚,各位尽力耐心看完,有会的帮下,谢谢了。。。