在电商系统中,EAV(Entity–Attribute–Value,实体–属性–值)模型常用于解决“商品属性高度灵活、品类差异巨大”的问题。下面从是什么、为什么用、怎么用、实际结构、优缺点与替代方案几个角度说明。
传统表结构:
商品表:id, name, price, color, size, weight, brand...
问题:不同品类属性不同(手机有“内存”,衣服有“尺码”),字段会爆炸。
EAV 把数据拆成三张核心表:
✅ 适用场景:
❌ 不适合:
products
--------
id
name
category_id
attributes
----------
id
name -- 颜色、尺寸
type -- string / int / enum
product_attributes
------------------
product_id
attribute_id
value
示例数据:
商品:iPhone 15
属性:颜色 → 黑色
属性:存储 → 256G
WHERE attribute='品牌' AND value='Apple'
⚠️ 大型电商通常会:
EAV 常配合:
SPU(标准产品)
SKU(库存单位)
SKU 级属性用 EAV 存储
❌ 问题:
✅ 优化方案:
✅ 更适合用:
电商用 EAV,是为了用复杂度换灵活性,但生产中通常是
EAV + 冗余 + 搜索引擎 的混合架构。
如果你愿意,我可以:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。