电商研发系列 —— 产品SKU模型和数据库设计

2016-10-08 14:24:15

请关注唯心的个人微信公众号:craft6-cn(中划线,也可以搜索:领域驱动业务建模)

一、前期的产品模型相关文章

汇聚起来方便大家顺序阅读。

电商研发系列——产品相关业务概括

电商研发系列——产品模块和关联整体建模

电商研发系列——产品SKU(一)概念定义和知识整理

电商研发系列——产品SKU(二)两种建模方式对比

电商研发系列——产品价格(一)之分类和分析

电商研发系列——产品价格(二)之数据建模

电商研发系列——产品目录(一)定义和分析

电商研发系列——产品目录(二)数据建模

电商研发系列——产品关联推荐(一)定义和分析

电商研发系列——产品关联推荐(二)业务建模

电商研发系列——产品媒体常见功能点


二、产品SKU E-R模型图


产品模块(Craft6.cn 颜超敏).jpg

    注意图中的的111关系的连线,至于多对则分解为两个1多关系进行设计。

    本图中没有标识任何的字段,是为了避免图过大,过早陷入表具体的细节干扰了整体设计的把控。

三、产品SKU 数据库设计

产品模型物理图.png

    请放大该图查看。
   

   【注】本图是一个主体的参考设计,并不是实际项目的最终使用版本。到实际的项目中,需要根据实际业务增加各类业务字段,
   或者如果某些业务没有那么复杂,可以删减一些表。


四、产品SKU 数据库设计说明

1.1.1. EC_PROD【产品】

字段

名称:无促销活动时留空,如果不为空则在前台附加到名称后面

业务键:即产品编码。此编码用于检索产品,但和库存无关。

简述产品列表显示。

详细描述ID:由于是大文本对象为了保证查询效率,所以放入公共的大文本对象表中由于该字段的内容只在产品详细页面才需要,所以查询产品集合时,无需关联查询字段。

产品状态:draft=草稿;on_sale=上架;not_on_sale=下架;forbidden=禁售。

 

状态流图参考如下:

产品状态(Craft6.cn 颜超敏).jpg 

如果需要更严格的审核,则在上架和下架状态,如果对产品信息做了修改,均更新为草稿状态,需要再次审核。企业业务需要。

产品形态

entity=实体产品;mix=产品包;software=软体产品;service=服务

产品包:需要配置产品包构件根据实体产品SKU生成产品包SKU

软件产品无需管理库存,一般为永远可售。

服务:同软体产品。

如果企业不对两者进行区分,也可以合并为虚拟产品

销售类型

stock=按库存销售;pre_order=预售;stock_and_back=按库存并缺货销售;always=永远可售

库存销售需要管理库存

预售:在维护产品销售价格时,需要配置预售相关的字段,如最大总可售数量。

按库存并缺货销售:选择此项后,需要对该产品的SKU配置两销售价格记录,是按库存销售,一条是缺货销售。如果配置按库存销售的销售价格记录,则缺货销售将按记录处理。

上架起始时间和上架结束时间。

可选。在设置为上架状态时设置。如果需要预上架功能,则需要开发一个定时任务定时扫描本表,当当前时间在上架起始结束时间内,则更改产品状态为“active 上架

1.1.2.  EC_SEO【实体SEO信息】

用于维护产品或产品目录实体的SEO信息。因为对于两者的SEO均只在其详细页面使用,所以将其分离出来放在一对一表中设计,方便重用和提高查询效率。

1.1.3.  EC_PROD_SKU【产品SKU

SKU业务键

一般内部管理使用,唯一对于独立的库存单元。

生成方式

auto_unique=自动生成唯一的产品SKU,并不是通过选择SKU选项生成。即该产品只有一个默认的产品SKU

manual=人工根据SKU选项生成。

尺寸长、宽、高三个字段。

计算体积、运输处理。

重量

物流计费处理。

市场价

显示

状态

产品SKU的状态相对简单,只有on_sale=上架、not_on_sell=下架两种。

1.1.4.  EC_PROD_MIX_ITEM【产品包构件】

注意两个外键关联的不同业务意义。

构件数量,默认是1.

1.1.5.  EC_PROD_PRICE【销售价格

价格类型sales_price=销售价;whole_price=批发价;pre-price=预售价;back_order=缺货销售价。

价格对应该类型的价格。

单一订单最小最大数量

当价格类型是

销售价:这两个参数影响购物车该产品的数量结账时会检查。

批发价:表示批发价在此范围内有效

预售价:表示每张订单至于预购的数量范围,同销售价。

缺货销售价:同销售价

最大总数量

对预售和缺货销售有效。即表示忽略库存的情况下,最大总可售数量。所以实现这两个业务时,需要统计该产品已经预售或缺货销售的数量。如果考虑到效率,可以使用EC_PROD_SKU_STAT【产品SKU统计】进行冗余。

附加配置

用于对各个价格类型进行个性化业务扩展,看企业业务需要。

起始和结束时间

表示该价格设置只在本时间范围内有效。

状态

inactive=未激活;actived=激活;expired=过期

产品价格状态(Craft6.cn 颜超敏).jpg 

1.1.6.  EC_PROD_MEDIA【产品媒体

本表依赖产品和产品SKU两张表,表示该媒体可以直接属于产品属于公共图),也可以属于某个产品SKU即在切换为该产品SKU时才会显示该媒体

是否主图对于产品或产品SKU,当存在多张图时,需要指定其中一张图为主图。

媒体类型:方便程序做处理。

媒体链接:媒体存放位置。

1.1.7.  EC_PROD_STAT【产品统计】

本表是针对产品的一些常见的业务统计数据进行冗余,方便显示。客户需要相应的业务中更新此表的相关数据。通过事件监听器、定期任务等异步处理方式进行更新。

1.1.8.  EC_PROD_SKU_STAT【产品SKU统计】

本表设计原理产品统计表,业务是针对产品SKU。目前设计了两个字段,用于冗余统计预售和缺货销售数量。

1.1.9.  EC_SKU_SPEC SKU规格】

SKU规格的定义相对简单。目前没有设计了SKU规格分组,如果网站涉及SKU规格很多种,可以增加一个分组表,比较简单,就客户自行完成了。

1.1.10. EC_SKU_SPEC_OP【规格选项】

由于只需要关联即可,所以选项无需支持复杂的数据类型(如浮点、大文本之类)。但为了留有扩展余地,我设计了一个选项字段使用

1.1.11. EC_SPEC_OP_INTER【规格选项相互作用】

作用类型

together=共存;exclude=排除。

共存,表示选项A出现时,可以有选项B反之也是

排除:表示选项A出现时,不能有选项B反之也是

 

这个表分为两部分的业务:

1. SKU规格选项公共的互作用约束

和产品产品SKU无关默认的设置。

2. 产品个性的约束(此时产品ID值不为空)

注意约束是无需界面设置的,而是根据设定产品SKU选择的规格选项自动生成,所以针对此类业务作用类型只有共存。对于这类业务是为了方便查询,也可以不做保存。

1.1.12. EC_PROD_CATE产品分类关联

产品产品目录建立多对多关联。

是否主目录

关联了多个目录时,其中一个目录是主目录。

1.1.13. EC_PROD_SUPPLIER【产品供应商关联】

产品和供应商建立多对多关联。


五、广告

  由于我将逐步把原先付费版的产品模型的文档公开(针对该产品模型文档的内容,

还会再公布一篇文章),所以将原先该文档的价格调低,现在更改为600元。

  购买者获得文档内容将和公开的内容无差异,只是有pdm源文件,可以节省了

数据库字段命名设计的时间,并且可以获得相关uml、er图的源文件。


Craft6.cn 电商研发方案 —— 产品模型业务分析和设计



可通过扫描左侧二维码阅读本文。本站文章均为颜超敏原创,欢迎转载,请注明出处即可,转载可通过下面的社会化工具快速完成。

分享到:


电商研发系列 —— 产品SKU模型和数据库设计

电子商务方案,产品模型,产品建模,电子商务设计方案,电子商务系统方案,电子商务软件设计,电子商务系统设计,产品信息,产品数据库,产品SKU数据库,产品SKU数据库设计,产品ER图,产品概要设计,产品概要设计方案

本文公开了原先付费的产品模型方案的产品模块的

数据库设计部分,供各位读者参考使用。

颜超敏,唯心六艺,Craft6.cn,电子商务博客,电子商务研发,电商研发,电子商务研究,电商研究,电子商务专家,电商专家,电子商务知识,电商知识,电子商务教程,电商教程,电子商务模式,电子商务平台,电子商务商业模式,电子商务数据库设计,电商数据库设计,电子商务系统分析,Java架构设计,Java软件架构,B2C,O2O,o2o模式,o2o电子商务,o2o电子商务平台,中国电子商务,电子商务平台建设方案
粤ICP备14060523号 Copyright @2014 -唯心六艺软件