- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
商品模块表结构及逻辑说明
商品模块表结构及逻辑说明
涉及到表
商品表(es_goods)
用于存储商品基本信息,其中字段P1至P21用于存储商品自定义属性。
直接将自定义属性存储于商品表中的目的是为了提高查询效率
确实存在更好的搜索方案,如Lucene,这将是javashop进步将要改进的
商品的自定义参数信息存储于es_goods_type表,在后面会有详细的介绍
货品表(es_product)
在javashop中关于货品的定义:
某一种商品可能有多种规格,那么每一种规格就是一个货品。
如某某衬衫是一个商品,他可能存在L号及白色和S号白色两种货品。
es_product用于存储货品数据,其中goods_id字段和es_goods表关联,其它字段定义了这种货品可能特有的属性,如库存、价格或重量等。
在多库房的情况下,库存的存储会变得相对复杂,此处的库存是指全部库房的库存和。
而es_goods表中的store字段记录了此商品所有货品、所有库房的库存之和。
货品库存表(es_product_store)
这个表是为了定义多个库房的货品库存情况,其中depotid字段和es_depot(库房表)关联。
商品库房对照表(es_goods_depot)
此表记录了某个库房是否完成了商品的进货。
这里涉及到了Javashop关于“进货任务”的概念,在Javashop中商品入库的流程为:
添加商品信息?形成进货任务?任务提醒?完成进货
“添加商品信息”和”进货”可能是由不同的角色完成的,“进货员”是否完成了某个商品的“进货任务”便记录在此表中,其中iscmpl为1表示完成了此商品的进货任务。
商品分类表(es_goods_cat)
此表定义了商品的分类,es_goods表中的cat_id和此表关联。
商品类型表(es_goods_type)
类型和类别不同,类型定义了商品的特性,如手机有“网络制式”、“机身内存”、“屏幕尺寸”等等属性和参数,还要定义其“摩托罗拉”或是“诺基亚”的品牌,属性和参数的字段是props、params。
类型和品牌的关系是一对多,对照表为:类型品牌对照表
商品模块逻辑分析
商品信息的维护
商品模块也是基于Javashop的组件机制,其核心逻辑在“商品核心组件”
(GoodsCoreComponent)中,此组件包主要插件有:
商品基本信息插件
商品相册插件
商品自定义属性插件
商品自定义参数插件
商品基本信息是对商品名称、价格、重量等属性的维护
商品相册是对商品表的 image_default \image_file两个字段维护
自定义属性是对商品表的p1-p20字段维护
自定义参数是对商品表的params字段维护。
对于规格的管理
对于商品规格的处理,涉及到两个组件:“标准货品组件”和“自定义规格组件”。
两个组件同时只能启用一个
规格组件(GoodsSpecComponent)
规格组件用于处理商品带有多种规格的情况,负责商品添加、修改、库存维护、配货发货环节的逻辑。
标准货品组件(ProductComponent)
此组件用于处理一种商品只对应一种规格的情况,在某些电子商务中的商品很简单,没有规格,一个商品即是一个货品,如果使用规格组件去处理会使业务变得过于复杂。因此提供标准货品组件,他也会涉及商品添加、修改、库存维护、配货发货环节的逻辑,但只考虑了单一货品的情况。
商品自定义属性及参数的存储
es_goods_type中的props及params字段存储了某个商品类型的自定义属性及自定义参数情况。
他们均以JSON格式存储于数据库中,参数JSON对应的Java实体对像为GoodsParam
属性JSON对应的Java实体为Attribute
在数据库中JSON字串的样子:
[{datatype:,hidden:0,name:包装,nums:[0,0],optionAr:[盒装,瓶装],optionMap:[{num:0,selected:0,url:,name:盒装},{num:0,selected:0,url:,name:瓶装}],options:盒装,瓶装,required:0,type:3,unit:,valStr:,value:,valueList:[]},{datatype:,hidden:0,name:口味,nums:[0,0,0,0],optionAr:[白咖啡,卡布奇诺,其它,特色咖啡],optionMap:[{num:0,selected:0,url:,name:白咖啡},{num:0,selected:0,url:,name:卡布奇诺},{num:0,selected:0,url:,name:其它},{num:0,selected:0,url:,name:特色咖啡}],options:白咖啡,卡布奇诺,
文档评论(0)