电商系统中的商品模型的分析与设计

前言

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

商品模型的演化

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

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

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

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

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

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

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

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

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

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

原文发布于微信公众号 - Spark学习技巧(bigdatatip)

原文发表时间:2018-03-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏张善友的专栏

思维导图FreeMind

什么是MindMap? MindMap(被译成思维导图或心智图)是一种思维工具,由英国的记忆之父托尼-博赞发明。 MindMap是一种新的思维模式,它将左脑...

28280
来自专栏AI研习社

七步即可学会R语言,从此数据分析不再怕!

本文特约作者为 DataCamp 的联合创始人 Martijn Theuwissen 。更多 R 语言资源请访问这里(http://t.cn/R9Uo2po)...

34930
来自专栏Jackson0714

Web性能探索之旅-1.无线网络基础

15120
来自专栏腾讯移动品质中心TMQ的专栏

代码质量与技术债

我们可以通过各种类型的检测手段来给出其质量高低的度量。但是,如果直接拿出一段源代码放在我们面前,问这段代码的质量好坏时,我们又该如何作答呢?

69840
来自专栏C语言及其他语言

C语言网(dotcpp.com)Get新玩法

最近,不知道大家有没有注意咱们C语言网的变化(www.dotcpp.com) 最近一周,又有新功能新资源发布,下面给大家汇报: 评测结果有了详细的提示信息,除了...

40890
来自专栏GopherCoder

技术文档如何编写?

1.1K50
来自专栏phodal

如何为技术博客设计一个推荐系统(中):基于 Google 搜索的半自动推荐

与统计学相比,基于内容来向用户推荐相似的内容,往往更容易获得。对于推荐来说,则有两种方式: 手动推荐 自动推荐 (PS:我承认,这句话说了等于没说。) 如下图所...

25760
来自专栏QQ会员技术团队的专栏

小兴逛Google I/O 2017(day3实况)

作者介绍:陈志兴,Google I/O 2017大会的小时光茶社特派员 ,腾讯SNG增值产品部内容中心Android组leader,主要负责手Q个性化业务、手Q...

215100
来自专栏企鹅号快讯

CNKI实用技能50例

《CNKI实用技能50例》由上海知网编制,以情景带入与问题导向的方式、简单易懂的原则进行编制,适合所有对CNKI有需求的读者。1-10例请点:收藏版 CNKI...

20150
来自专栏CDA数据分析师

Excel商业智能分析报表「玩」法解析

本文为CDA金牌讲师李奇原创,转载请在本平台申请授权 随着大数据时代的到来,企业管理者对数据价值的重视度越来越高,他们渴望从企业内外部数据中获得更多的信息财富,...

37390

扫码关注云+社区

领取腾讯云代金券