象京东商城那种商品筛选要怎么实现?
比如这个例子
http://www.360buy.com/products/737-752-753-0-0-0-0-0-0-0-1-1-1.html
电饭煲 - 商品筛选
关键在于对不同的商品类别,有不同筛选条件,筛选内容又是多样变化的,从数据库设计到程序实现,要怎么做种呢。
请提供经验和思路,谢谢。
[解决办法]
帮顶一下
[解决办法]
这个,变动比较少的话,可以写个配置文件
[解决办法]
品牌,商品种类之类的都建个表就得了,录入商品的时候要选择对应的属性的。
[解决办法]
“容量”这个输入自定义字段的范畴,自定义字段跟栏目对应好。
[解决办法]
从它的页面html代码来看,应该实现了静态化的,从文件命名来分析:737-752-753-0-0-0-0-0-0-0-1-1-1.html 中:每一个中杠就是一个参数间隔,737表示:家用电器,752:厨房电器,753:电饭煲,等等。
也就是说737-752-753-0-0-0-0-0-0-0-1-1-1.html表示的参数格式为:
分别应该是:
737 -752 -753 -0 -0 -0 -0 -0-0-0-1 -1 -1.html
一级类(如:家用电器)-二级类(如:厨房电器)-三级类(如:电饭煲)-品牌-价格-类别-容量-0-0-0-1-排序方式 -1
其中:容量与排序方式之间有3个0,和1个1,应该扩展用的,比如这个页面:http://www.360buy.com/products/737-794-888-0-0-0-0-0-0-0-1-1-1.html,燃气热水器的参数就多一些:气源,品牌,款式,排烟方式,价格,最大容积L。
最后一个1,可能是表示是否在页面里显示推荐产品,你改成2试试,改3,4,5,都行,说明是此网站做了伪静态处理,应该用URL重写(UrlRewriter 是微软封装好了的一个URL重写组件)实现de.
[解决办法]
仔细分析,其实就会弄明白的
[解决办法]
分类表、商品表 就可以了, 分类表 可以建一级 二级 三级.... ,
查询 都是 自己组合的条件
[解决办法]
学习
[解决办法]
学习
[解决办法]
分类表、品牌表、商品表
分类与品牌关联,商品与分类和平牌都关联
操作流程:
1、添加品牌
2、添加分类,并设置此分类所拥有那些品牌
3、添加产品,(1)选择分类,(2)选择品牌(当然这里选择品牌的时候只读取与所选分类关联的品牌)
前台检索时选择分类时,读出此分类关联的品牌,其他没关联的不用读出就行。
[解决办法]
[解决办法]
分类、品牌、商品这上面我已提起,就不说了说说属性。
你的意思是如:电视有尺寸、分辨率属性,冷柜类可能有款式、容积的属性,也就是说不同的商品有不同的属性这样是吧?首先要分析一点,同分类的属性值应该是相同,如加湿器他的容积是1.0L以下、1.0L-2.0L、2.1L-3.0L3.1L这样的,也就是说凡是加湿器,管他哪个品牌的他都是这样的。但是冷柜则不同,他的容积是这样分的,100L以下、101-150L、151-200L、201-300L。
我的建表方式:
Brand_List(品牌列表)
id name
1 海尔
2 TCL
3 星星
Product_Category(商品分类)
id parent_id name BrandID_List(这里存放品牌的ID集合)
1 0 家电
2 1 电视 1,2
3 1 冷柜 1,3
4 1 加湿器 1,2,3
Category_attribute(商品分类属性)
id category_id name values
1 2 尺寸 19英寸,20英寸,21英寸
2 2 分辨率 1366*768,166*768
3 3 冷柜容积 100L以下,01-150L
4 4 加湿器容积 1.0L以下,1.0L-2.0L
Products_list (商品信息表)
id Category_Id(分类ID) Brand_Id(品牌ID) Name
1 2 1 海尔电视
2 3 3 星星冷柜
Products_attribute (商品属性)
id product_id(商品ID) cat_att_id(商品分类属性的ID) att_value(属性值)
1 1 1 19英寸
2 1 2 1366*768
3 2 3 100L以下
后台录入商品时:1、选择商品分类;2、选择品牌(选择品牌的时候只读取与所选分类关联的品牌);3、属性的选择(将此分类关联的属性读出来,再读出每个属性的选项),除属性的数据写入到独立的表(products_attribute)外,其他信息均写入products_list表。
前台筛选:选择分类后--》读出与此分类相关的品牌、读出与此分类相关的属性以及每个属性的选项值,执行查询时如果只根据分类和品牌去查,则直接的products_list表,如果要根据属性查,比如电视尺寸为19寸的,则此时需要去检索Products_attribute(商品属性)表,将检索出的结果与PRODUCTS——LIST关联就行。
今天工作不算忙,就写了这么多,看似乎有些复杂,或许是我的思路不够好吧,如果有好的方式也希望别人能贴出来。你先看下对你是否有用,对了如果觉得还行,请记得给点辛苦分啊。
[解决办法]
学习~~~~
[解决办法]
根据不同的商品类型 显示不同的搜索条件
[解决办法]
[解决办法]
大哥 解决了吗 我也正好遇到了这个问题?
[解决办法]
简单思路:
一个品牌表,一个分类表,一个产品表,产品表里面有两个外键,分别是指向品牌表和分类表,
产品表里面还有很多其他字段如价格、容量、规格、产品名称、产品描述、产品图片等
京东商城采用的是伪静态,搜索方式还是GET参数传递,很容易理解
http://www.360buy.com/products/737-752-753-0-0-0-0-0-0-0-1-1-1.html
这个红色部分就是参数,你仔细看,有个规律,就是13个参数,但我搜索美的的产品时候,变成:
http://www.360buy.com/products/737-752-753-3212-0-0-0-0-0-0-1-1-1.html
第四个参数代表品牌,
你的要求“关键在于对不同的商品类别,有不同筛选条件”,只要多个搜索条件以GET参数传递给后台,用程序去构造相关的查询SQL语句,即可。。。
[解决办法]
兄弟问题解决了吗?我最近也在搞这个东西,向你请教下,
[解决办法]
这不就是复合的多条件查询吗?
最简单的就是拼sql,代码简单.不过安全性差点.
好点就是在存储过程中进行逻辑处理,不同的参数组合用不同的查询语句.
[解决办法]
[解决办法]
[解决办法]