在系统设计中,EAV(Entity-Attribute-Value,实体-属性-值)模型和宽表(Wide Table)模型是两种常见的数据建模方式,选择哪种通常取决于业务场景、数据特征和系统演进需求。下面从多个维度对比,并给出选型建议。
entity_id | attribute_id | value
1 | color | red
1 | size | M
id | color | size | weight | brand
1 | red | M | 200 | Nike
| 维度 | EAV 模型 | 宽表模型 |
|---|---|---|
| schema 灵活性 | 极高,随时加属性 | 低,改表成本高 |
| 查询性能 | 较差(需 join / 行转列) | 很好(直接读列) |
| 写入复杂度 | 低(插一行即可) | 中(需完整结构) |
| 数据分析 | 困难 | 容易(BI 友好) |
| 存储效率 | 一般(冗余多) | 高 |
| 索引与约束 | 难做 | 易做 |
| 可维护性 | 长期易混乱 | 初期简单 |
✅ 适合场景:
❌ 不适合:
✅ 适合场景:
❌ 不适合:
id | name | price | ext(json)
结构稳定用宽表,结构多变用 EAV,不确定就用“宽表 + JSON”。
如果你有具体业务(比如电商商品、埋点、配置系统),我可以帮你直接给出建模示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。