关注电子商务网站开发-《产品表结构》

产品表是每个电子商务网站都有的数据表,不同类型的网站有不同类型的产品表,这里要讲的是类似于京东的一套B2C产品结构表,中间的具体事例也会以京东的数据为例。

 

阅读目录

  • 前言
  • 数据库模型图
  • 表说明
  • 相关功能-展示分类
  • 相关功能-点击某个分类,加载该分类的所有属性和产品
  • 相关功能-点击某个属性,加载出相应产品
  • 相关功能-关键字查询
  • 结尾

 

前言

做电子商务网站开发也一年多了,最近一直在整理这一年多积累的相关知识,整理之后发现还是有很多值得思考的地方,不如拿出来和大家分享讨论,若能碰到高手指点一二岂不更妙。

 

数据库模型图

模型图中涉及的字段都是本文中讲到的基本字段

 

表说明

先贴出一张京东首页的分类截图以供说明:

 

 

在模型图的左上角找到MainCategory(主分类表),此表用来存储图中的最大分类,现在往表里插入两条数据,服装鞋包和个护化妆如图:

 

MainCategory表:

说明:存储主要分类

 

找到次分类表SubCategory 表,根据主分类表中的MainCategoryID字段为每个主分类添加两个次分类,如图:

 

SubCategory 表:

说明:存储次分类

处理完基本分类,现在开始处理相关属性表,贴出一张京东的男装中的衬衫的属性筛选截图:

 

 

图中的品牌、风格、价格等被称为主属性,具体到某个品牌某个款式称之为属性,在数据库模型图的左下角找到主属性表Attributes,插入几条常用的主属性,如图:

 

Attributes表:

说明:存储主属性

 

然后找到属性表SubAttributes表,根据主属性表的数据插入几条数据,如图:

 

SubAttributes表:

说明:存储属性

 

现在开始添加真正意义上的分类,因为分类是和属性关联起来的,所以只有准备好以上相关数据才能添加分类,在插入分类数据之前要做一个操作,就是选择该分类所拥有的主属性,根据主属性再选择该分类拥有的次属性,这里做了个小工具,用来实现,如图:

 

添加后的数据如图:

Category表

说明:存储产品的分类

 

Attribute_SubAttributes_Category_Mapping表

说明:关联分类及对应的主属性和属性

 

然后通过关联语句查询出一个关联表,如图:

 

现在哪个分类对应哪些属性都出来了,开始准备添加产品了,其中与产品相关的有两个表,一个是属性产品关联表,此表是为了搜索及加载等功能,就像图中的点击某个属性加载了相应的产品。至于产品表中的AttributesStrings是存放该产品的属性集合,是为了方便搜索,在后面也会讲到,为了方便展示,产品表里还可以添加一个品牌列,因为每个产品都有品牌这个属性,这里就不多做阐述了。

添加产品也是用程序实现的,如图:

添加数据后的表如图:

Product表:

表说明:存储产品的基本数据及该产品的分类ID,次分类ID,属性ID集合字符串(以分号相隔)

Attributes_SubAttributes_Product_Mapping表:

表说明:存储产品及主属性次属性的关联

 

这里还要提一下,为了以后方面整体以后,每个产品不同颜色不同尺码在数据库里都是作为一个单独产品存在的,大家可以在京东上看到,不同尺码,产品编码也不同,如图:

 

相关功能

 

现在介绍相关功能,在相关功能里每个表的每个字段都会用到。

第一个功能:展示分类

这里主要用到就是分类的3个表,只要根据上级ID不停的遍历加载就行了,这里借用京东的分类来展示,如图:

 

第二个功能:点击某个分类,加载该分类的所有属性和产品

在京东上点击男装-衬衫这个分类加载的效果如图:

这里用到的第一个表是Attribute_SubAttributes_Category_Mapping,首先得到男装-衬衫的ID,这个ID就是一个CategoryID,在表Attribute_SubAttributes_Category_Mapping中先筛选出主属性ID(AttributeID),在根据主属性得到该主属性的所有次属性(SubAttributesID),如图在刚才加入的数据中我们可以加载出衬衫的品牌、价格、尺码等主属性以及相对应的属性。

至于加载该分类的所有产品就比较简单了,产品表(Product)中本身就存在CategoryID,就可以根据CategoryID得到该分类所有的产品了。

 

第三个功能:点击某个属性,加载出相应产品。

京东上的效果如图:

这里就要用到Attributes_SubAttributes_Product_Mapping表了,首先得到该属性的主属性的ID,图中点击七匹狼就需要获取品牌这个主属性的ID了,比如品牌这个主属性的ID是A-B,七匹狼这个属性ID是C-D,那么查询Attributes_SubAttributes_Product_Mapping表,查询条件是(AttributesID<>’ A-B’) or (AttributesID=’A-B’ and SubAttributesID=’C-D’)。抱歉,只会用SQL SERVER的查询语句o(︶︿︶)o。解释一下这个条件,这是一个OR的逻辑关系,所以在只要在表Attributes_SubAttributes_Product_Mapping中符合主属性ID(AttributesID)不等于A-B或者是主属性=A-B且属性ID(SubAttributesID)=C-D的产品都符合,若多个条件,则需要多个OR逻辑。

第四个功能关键字查询

关键字查询基本上是每个B2C网站都有的功能,但是想要做的既要逻辑简单又要功能强大确实不容易,这里就先介绍最简单的单关键字查询,至于多关键字查询相信大家如果理解了这个逻辑,应该会不难想出来的。

关键字查询用到两个表Product表和Attributes_SubAttributes_Product_Mapping表,所以这里就可以把这两个表关联一下,组成一个视图VProduct,如图:

这样就可以用关键字模糊匹配视图的各个字段最后加载出相关的产品。当然为了完善搜索功能,可以给产品表增加一些描述性的字段,搜索时也可以有更多匹配,在这里就不一一列举了。

 

结尾

整个表结构到这里差不多就讲完了,这是本人第一篇博客,文笔不好,敬请谅解,如果有疑问可以在评论里提出来,本人尽可能的回复。一直都在博客园潜水,终于有想法把自己思考的东西表达出来了,以后还会继续讨论一些电子商务开发中常用的一些技术,希望大家多多关注。

 

 

posted on 2013-04-08 15:13  libero1890  阅读(1787)  评论(6编辑  收藏  举报

导航