还剩3页未读,继续阅读
文本内容:
淘宝数据架构设计案例经验电子商务网站如火如荼,究竟商品属性该如何设计?本文作者将从从淘宝数据结构来看电子商务中商品属性设计AD为什么要这样设计先说几个需求,看看您现在是如何去实现一个用户来到我们网站,在前台页面,
1.他要买洗发水,他进入了洗发水的类别,他想买带去屑止痒功效的500ml的洗发水,能否直接搜索出来所有品牌带这个功效属性是500ml的洗发水
2.接着他要买一件T恤,他想买V领,短袖的T恤,能否直接通过2个属性搜索出所有品牌的T恤展示给他
3.他进入一个T恤的详情页面,由于白色卖的比较好,所以白色会比其他颜色贵一些,所以他选择不同颜色+不同尺码的搭配,就会显示出不同的价格以及是否有库存后台
1.统计某些商品某种属性销量情况和库存,反馈给仓库部门及时备货,比如海飞丝去屑系列的250nli的洗发水在这个系列中卖的最好,300ml的其次A品牌XX大衣红色XL时间段内的销量和库存量
2.这个洗发水在做一个阶梯价销售,买2瓶便宜2块,买3瓶便宜5块,需要给出这种组合的销售量数据给策划人员来说明阶梯价销售对消费者的影响
3.A品牌T恤分圆领,V领,7分袖,短袖,统计圆领和V领销量情况供买手或者设计师参考大众比较接受什么设计,以备下一次的采购
4.这一年做了几十个活动,每个活动做了很多单品的搭配组合销售,比如500ml某种洗发水+黄色的眼霜等,我们现在没有做数据仓库和数据分析,那么要求sql语句来得到那种单品的销量情况,让我们可以能得知策划者的搭配到达了什么样的效果甚至变态一点,我们要统计我们店得面膜的销售,我要知道撕拉型的面膜,水洗式面膜,睡眠免洗式面膜中带美白功能,带抗皱功能,带控油功能等哪种卖的好一些,怎么办呢顺便扯一句,根据商品放置在页面的位置,深度,销量可以分析出某些品牌商品不需要放置在重要位置,某些对于我们来说利润高一点,或者销量不是很理想的商品放在重要位置或者排序在前来提高用户浏览量进而提高购买率如果不设计属性,这种搜索是很难进行的!如果不分的这么彻底,比如ecshop或者nopecomerce,那么你无法针对每个SKU设置组合搭配的价格和数量以及商家编码和SN号上一篇设计出现的问题以及解决办法在上一遍文章中,有比较大的问题没有解决:
1.商品录入编辑界面编码实现过于复杂
2.如何通过属性搜索
3.按现在属性值属性表设计无法做到,如果A品牌洗发水有去痒止屑功效,B品牌洗发水同样有这个系列,无法搜索具有去痒止屑功效属性的所有洗发水的销量,因为现在的属性名和属性值表是1N的关系,应该是N:N的关系解决问题最简单的实现商品的录入界面:L■页产品看理绵加/缱,产2商品分类商品名你!飘委蕤词去同进友宾条附码上市呐三^商品基础信息熔存数费o育品的正眼《坡干克为“位fo00-市场罐价旬停码口
二、1«咐氏98■守4HJ rti迹发理头吗乎叫包▼炊格13[常蟆华品通合珏造丽科人_.二]户地中国大抵触运【▼I M«*Q fiftKIn«《洗发水》2OOG64OOml15OOml5ml3lOOml14OOG2OOml E15Oml125Oml33OOml1I!118Oml1U6OOml168Oml!345Oml V1750ml EJ90ml QlOOOmll33OOg38OOml!I46Oml17Sml^175OG3500=J260ml J550ml315OOML16OOG12100700ml I330ML270MtE J3S5ml220ml12S0ml LI8SOml3370ml i820MLl267ML巴458m|82250ml3OML买咕冬•便宜今《南・写件的总位〉x3H x1O81x1f x683x8*M12x24i x2I〕x16《洗发0-n htna2to_____共外蚕,便宜分(值写件・价格商本!廉码mite_____________[1____________]AQO3148O484OOmlS_____________________fit_________________1392Q0ml X1[69O3148O48_____________________________S_____________________x1|
45.S AQO3148O4Q«750ml元在这里,我把商品的品牌和系列这个麻烦的东西分开了,为什么分开品牌和系列导致2个属性名表和属性值多级引用,在实际代码实现过程中也会增加很多代码,增加复杂性,由于项目原因,这里只做了父子及关系,您在设计的时候,这里应该是品牌一张表,系列是父子及,有第3张表记录品牌与系列的多对多关系为什么呢,只有这样,才能满足比如A洗发水有去屑止痒系列,B洗发水同样也有这个系列,那么才能方便的统计出去屑止痒洗发水的总的销售情况!解决问题
2.通过属性搜索
1.首先说明这个SKU和属性如何存储位字:符出组合skuid tem_id propertiesquantty priceouterjd createOnstatus propertiesName—210471259069031480489862011-
07.2909:48:252500x1-400ml2118410477589250:13824535:
538188545682113.9069031480489792011-07-2909:48:
253600.x1-20nl10472011-07-2909:48:25407311857589250:13824535:5381885:531061459069031480490064118610437589250:13824535:5381885:
37018125.9069031480488872011-
07.2910:19:
36.063x1-400ml05118710437589250:13824535:
538188545682113.906903148048870201107-2910:19:361100x1-200ml61188758925013824535:5381885531061459069031480488942011-07-2910:19:36157x1-750ml10430item attrid itemidp idvjd skuid isSku:24210231989095469312928S450“10232431989095469148446911501024244772167869160654029010631024245由哪用砌10631024740524677216786918667120031064102424714196629197587274051064102424877216786916065402901065102424914196629196381775711065102425077216786918667120031066102425114196629196381775711066在添加一个商品的时候,在pg_iterns表中保持商品的基本信息.pg_item_sku表中保存sku信息,这个sku信息用来实现页面上的选择颜色,尺码这种组合不同价格,或者洗发水选择不同毫升数不同价格pg_item_attr表中保存所有属性信息,包括每个SKU的属性拆分之后的信息,这样的话,保证能通过每种属性来搜索商品比如我要搜索带有滋润功能的200ml的沐浴露,那么我的语句就是SELECT DISTINCTdbo.pg_items.item id,pg_items.name FROMdbo.pg itemattr paINNERJOIN dbo.pg_iterns ONpg_iterns.item_id=pa.itemidINNER JOINpg_item_attr pa2ON pa.itemid=pa
2.itemid--组合WHERE pa.p_id=772167869AND pa.v_id-1866712003AND pa
2.p id=1419662919AND pa
2.v id=758727405—组合我的做法是,通过属性值ID和属性名ID的组合组合成上面的语句,有多条就组合多次,这里按照我们一般的情况,是不会说组合到级联10几次的,如果您觉得不靠谱,欢迎提出出您的看法解决问题
3.统计相同特性的不同商品的销售情况如通过洗发水功效,服装的花色,衣领的样式来分析特性的不同对销售的影响.要实现在属性名和属性值表的设计的时候,应该是有第三张关系映射记录表来记录多对多关系我这里还是偷懒了,因为我是针对淘宝的系统,拉下的属性已经是把3张表打横成了2张表,正好不用自己做了如果是自己做系统,那就得考虑加上关系映射表.这样设计的缺点1•实现复杂
2.需要商品维护人员对自己商店卖的各种商品的属性,注重的统计的方面有个比较清晰的认识,学习成本高一点
3.策划,业务人员必须理解这样的设计,才能结合系统给决策带来所需要的数据我觉得程序员应该对业务的理解仅次于项目的策划人和需求分析人员甚至比他们对某些商业模式更为理解,深入行业,了解行业的点点滴滴,有敏锐的需求的嗅觉,那么才能做出好的程序而且程序是为业务服务的,如果不深入了解业务,那么很多时候程序会偏掉,举一个简单的列子,现在某衣服做一个活动,上午是200块,下午是150块,在晚上是100块,那么这个价格变动带来的销量就能给活动策划者提供强有力的数据支撑,我们也能学到背后的商业模式,为什么要这样做,如何做!(赚人气,打造爆款,清仓等)不然就写几行代码,搞搞表关系,有什么意思??其实里面的各种调调,比几行代码有意思太多了!。