`
siashuayongsheng
  • 浏览: 118115 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

数据库设计

    博客分类:
  • Java
Tcl 
阅读更多
分类、品牌、商品这上面我已提起,就不说了说说属性。
你的意思是如:电视有尺寸、分辨率属性,冷柜类可能有款式、容积的属性,也就是说不同的商品有不同的属性这样是吧?首先要分析一点,同分类的属性值应该是相同,如加湿器他的容积是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关联就行。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics