遗忘海岸

江湖程序员 -Feiph(LM战士)

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

关于--从淘宝数据结构来看电子商务中商品属性设计

昨天看了 活雷锋从淘宝数据结构来看电子商务中商品属性设计,对表之间的结构关系不是很清楚于是就整理了下相关结构

图1

图1中,可以确定商品由分类+属性组成,属性又分关键属性,销售属性,非关键属性等,具体的从淘宝数据结构来看电子商务中商品属性设计有说明,这里需要注意的是属性是一个多层结构(树型)如分类“台式机”的属性:"品牌->系列->型号".  数据库中有属性名(key)表跟属性值表(Value)表,参考下面的图2。

[分类属性名]与[分类属性值]有两个关联,一个是[分类属性值]到[分类属性名]的N:1,另外一个是[分类属性名]到[分类属性值]的1:(0..1),这个设计相当绕 (-_")

图2 数据表关系

下面是具体的数据演示,这里输入了“洗发水”跟“台式机”的相关数据

 [商品分类].分类编号=2 (台式机) --分类编号--> [分类属性名].属性名编号=5 (品牌) --属性名编号-->[分类属性值].属性值编号={11,12}(宏基,戴尔)

[分类属性值].属性值编号=11(宏基) --属性值编号--> [分类属性名].属性名编号=6(型号 -- 宏基)--属性名编号-->[分类属性值].属性值编号=13(AcerPower F1(C4 2.5G))

注意:上面两个过程后面多是  拿[分类属性名].属性名称编号 匹配  [分类属性值].属性名编号 字段

总的效果是

台式机
--品牌
----型号←宏基
-------AcerPower F1(C4 2.5G)
-------AcerPower S230 P308056NS30
----系列←戴尔
-------Dimension型号←Dimension系列
---------Dimension 9200(Q210610)
---------Dimension C521(N211233)
-------Inspiron型号←Inspiron系列
---------Inspiron 530(R210101N)

由上可以见属性本质是树型结构,那么为什么不直接放在一张表中呢,主要考虑可能是每个属性包含其他字段(如单选,多选,下拉,radio,关键属性,必填属性等)
分开后属性值表的数据就更加“纯洁了”,另外“分类属性值”表数据的父子关系不能直接在“分类属性值”表加ParentId字段来实现,因为直接这样做就无法体现“值”是单选或多选等性质因为这些字段在“分类属性名”表上定义,于是属性值的父子关系又专而依赖“分类属性名”表的“父属性名编号”来体现,同时也重用了该属性是单选或多等其他字段定义

图3

图4

图5

posted on   遗忘海岸  阅读(8068)  评论(22编辑  收藏  举报

编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 单线程的Redis速度为什么快?
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
历史上的今天:
2008-04-23 T-SQL无重复选择记录
点击右上角即可分享
微信分享提示