EAV(Entity-Attribute-Value,实体-属性-值)模型是一种用来存储高度动态、稀疏数据的数据库设计方式。在“建站”(尤其是电商、CMS、PIM、CRM 类系统)场景中被广泛使用,核心原因可以归纳为以下几点:
很多网站(尤其是电商、商品库、自定义表单)面临一个问题:
如果用传统表结构:
products (
id, name, price, size, color, screen, weight, ...
)
会导致:
EAV 把结构变成数据:
Entity: 商品ID=1
Attribute: 颜色
Value: 红色
很多建站系统(如 Magento、WordPress 高级字段、 Drupal)允许:
EAV 可以不改数据库结构就支持新属性。
如果一个实体有 500 个可能属性,但每个实体只用 10 个:
存储更高效(逻辑上)。
SaaS 建站平台常面对:
EAV 可做到:
EAV 不是“银弹”,问题也很明显:
SELECT ...
FROM entity e
JOIN eav a1 ON a1.entity_id = e.id AND a1.attr='color'
JOIN eav a2 ON a2.entity_id = e.id AND a2.attr='price'
更优方案可能是:
用 EAV 建站,本质是用“灵活性”换“复杂度”,适合属性多变、用户可定义的网站系统。
如果你愿意,我可以:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。