关于--从淘宝数据结构来看电子商务中商品属性设计
昨天看了 活雷锋的从淘宝数据结构来看电子商务中商品属性设计,对表之间的结构关系不是很清楚于是就整理了下相关结构
图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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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无重复选择记录