前言

在电商系统中,商品模型至关重要,是整个电商的核心,下面通过一个简单的分析,设计一个基础的商品模型。

商品模型的演化

在以前,那时CMS很流行,最常见的模型是栏目-文章模型。于是做电商的时候,自然就继承了这种一对多的关系。只是栏目变成了分类,文章变成了商品。商品也具备了独特的业务属性。现在很多电商网站上左侧的菜单,也就是这个分类。

后来我们慢慢发现一个问题,只有分类并不能适应所有的需求,比如nike鞋和nikeT恤,用户可能希望先看nike的所有商品,这个模型就不能满足。我们想在这个关系中,加入“品牌”概念。于是:

这样基本用户可以在首页上通过分类或者品牌找到自己想要的商品,也可以直接查看热门的商品和新上架的商品。但是问题也来了,用户在进入分类后,展示在用户面前的是很多很多商品,用户希望再通过筛选查询出更接近他目标的商品。于是优秀的产品设计师,设计出了类似这样的UI:

用户可以通过这些筛选条件进一步缩小自己的目标范围,那么问题又来了,这样的产品需求排在程序员面前,怎么去实现它?经过分析,我们找出了一个方法,我们知道商品之间的属性可能存在着较大的差别,比如牛仔裤它有版型、腰型、裤长等属性;而电脑它有CPU、显卡等属性,各类商品的属性是不同的。再进一步想,休闲裤也版型、腰型、裤长等属性;台式电脑或者笔记本电脑都有CPU、显卡等属性。所以我们得出:一个分类对应若干属性,而一个属性,对应若干属性选项,而一个具体商品又对应若干属性选项(例如具体一条牛仔裤,他的裤长:7分,裤型:直筒)。有点绕,仔细品味一下。

从图上可以看出,分类和属性的关系(例如:“牛仔裤”分类下有裤型、裤长、版型等属性)、属性和属性选项的关系(例如:裤长属性有长款、九分裤、七分裤的选项)、商品和属性选项的关系(例如某条牛仔裤的裤长是7分裤)。至此,我们知道一个商品的分类、品牌以及它有什么属性和对应的属性值。那么通过筛选条件,自然就可以查询出指定的商品。这里特别说一句,价格也是属性,不要设想用商品表中的价格字段去做计算。这不利于查询也增加了复杂度,让商家编辑人员用属性来设置并保证他的正确性。

有了这个模型,我们大概就可以看到以下界面(请不要太关注左边,重点在右边和下面):

这个页面展示商品的所有信息,按照之前的设计好像都可以满足。但是我们似乎感觉错过了什么,在图上右边我们发现该商品当前的颜色和尺寸,并且允许用户可以选择其他的颜色和尺寸。这给我们带来了疑惑,这里的“颜色”和“尺寸”是什么,一件商品的不同颜色不同尺寸是算一个商品还是多个商品。经过思考后,我们发现我们混淆了两个概念——“商品”和“货品”。不同规格的货品作为独立的商品。比如一条裤子的有L尺寸、M尺寸、一个U盘有16G还是32G的,都是同样的货品,不同规格的商品。可以认为货品和商品是一对多的关系。弄清了这个概念,处理这个需求就容易多了,这里的“颜色”、“尺寸”我们就作为“规格”来处理,而红色、黑色;L号、M号我们视为规格的选项或者说规格值。一件货品对应若干规格,而具有某一规格值的货品就是商品。

好了,现在好像差不多了。基于这个模型可以满足基本的商品搜索、展示的需求。搜索引擎也可以根据这个模型数据生成对应的商品索引,达到准确搜索的目的。商品模块还会和其他模块一起协作,比如用户系统、订单系统、支付系统等。一般情况下我们会把商品业务独立出来做成“商品中心”的服务,集中处理商品查询、更新、发布等业务,支撑其他业务。

出处:http://www.cnblogs.com/leefreeman/p/4060227.html

版权申明:内容来源网络,版权归原创者所有。除非无法确认,我们都会标明作者及出处,如有侵权烦请告知,我们会立即删除并表示歉意。谢谢。


架构文摘

ID:ArchDigest

互联网应用架构丨架构技术丨大型网站丨大数据丨机器学习

更多精彩文章,请点击下方:阅读原文

电商系统中的商品模型的分析与设计相关推荐

  1. 电商系统中的商品模型的分析与设计—续

    在<电商系统中的商品模型的分析与设计>中,对电商系统商品模型有一个粗浅的描述,后来有博友对货品和商品的区别以及属性有一些疑问.我也对此做一些研究,再次简单的对商品模型做一个介绍. 从SPU ...

  2. 电商系统中的商品的SKU和SPU是什么?

    SPU = Standard Product Unit (标准化产品单元) SPU是商品信息聚合的最小单位,是一组可复用.易检索的标准化信息的集合,该集合描述了一个产品的特性. SPU属性:不会影响到 ...

  3. 电商系统设计MySQL_电商系统中的下单功能的mysql架构设计

    简单的订单业务的基本模型设计用户.商品(库存).订单.付款,这里只考虑商品和订单,流程是下订单 -> 减库存,这两步必须同时完成,不能下了订单不减库存(超卖),或者减了库存没有生成订单(少卖). ...

  4. 电商系统中的分类属性系统设计之我见(抛砖引玉)

    电商系统中的分类属性系统设计之我见(抛砖引玉)          需求原型:          目前公司在整合户外广告行业媒体.户外广告行业分为不同的大类(高速,公交,机场,地铁,商超,火车)等等大的 ...

  5. 聊聊电商系统中常见的9大坑,库存超卖、重复下单、物流单ABA...

    做为一名程序员,发展方向大致可以分为两个方面:一个是业务架构,一个是技术架构(中间件方向). 业务架构,取其核心关键词,主要是围绕这不同的业务场景.业务规则,完成业务系统的落地建设,为用户提供在线化的 ...

  6. PHP电商的sku,tech| 关于电商系统中sku与spu的一个难题

    date: 2018-8-1 21:17:14 title: tech| tech| 关于电商系统中sku与spu的一个难题 description: 业务上碰到的关于电商系统中sku与spu的一个难 ...

  7. 电商系统中常见的 9 大坑,你踩过没?

    做为一名程序员,发展方向大致可以分为两个方面:一个是业务架构,一个是技术架构(中间件方向). 业务架构,取其核心关键词,主要是围绕这不同的业务场景.业务规则,完成业务系统的落地建设,为用户提供在线化的 ...

  8. 电商系统中的SPU和SKU

    1.SPU介绍 SPU = Standard Product Unit(标准产品单元) SPU是商品信息聚合的最小单位,是一组可复用.易检索的标准化信息的集合,该集合描述了一个产品的特性.通俗的讲,除 ...

  9. 幂等和高并发在电商系统中的使用

    在Java web项目开发中,经常会听到在做订单系统中生成订单的时候,要做幂等性控制和并发控制,特对此部分内容作出总结,在高并发场景下,代码层面需要实现并发控制:但是幂等性,其实更多的是系统的接口对外 ...

最新文章

  1. MATLAB实现实时录音,语音采集与读写用matlab实现录音以及语谱图的绘制.pdf
  2. android cpu绑核
  3. liferay mysql driver_Liferay更改数据库(oracle,mysql)
  4. java之for循环
  5. 中国首富们三十而立的年纪都在干什么
  6. java opencv orb_opencv python ORB算法
  7. JMeter之HTTP请求上传文件/上传图片
  8. IDEA里如何安装Python插件打造开发环境(图文详解)
  9. 春节福利:《Oracle性能优化与诊断案例精选》电子版首次公开下载
  10. highcharts注销
  11. Linux如何下载安装软件超详细解析
  12. ppt流程图箭头分叉_实用模版大全(最全箭头、流程图).ppt
  13. 神经元人体分布大图,人体的神经元图片
  14. 什么是十六进制法_什么是十六进制-十六进制详解-嗨客网
  15. maya阿诺德渲染失败_Arnold 批渲染失败
  16. 计算机应用基础 教材 黄洪艺,高教社产品信息检索系统
  17. 复杂SQL语句练习【III】
  18. 从开发者的角度剖析微信小程序
  19. Docker启动报错:Job for docker.service failed because the control process exited with error code. See “sy
  20. Porting:linux内核的模块化、根文件系统的制作和自动挂载

热门文章

  1. 2020再谈软件测试人员的核心竞争力
  2. DevExpress 20.2.3有源码吗?一名鱼友刚刚问我的
  3. 我看ERP的物料编码原则
  4. 关于AQS中自旋的理解
  5. 用Django实现网页Url使用汉语拼音PinYin作为SEO优化的实现方法
  6. iOS:DES加密iOS和Android的匹配
  7. 【181101】VC++电子地图绘制工具源代码
  8. Bezier曲线、B样条和NURBS的基本概念
  9. android接入原生第三方登录(微信登录、QQ登录、新浪微博登录)
  10. thegraph subgraph 踩坑之入门青铜