EAV(Entity-Attribute-Value,实体-属性-值)模型是一种用于处理高度动态、稀疏、属性不固定的数据的数据建模方式;而传统表(关系型宽表/固定 schema 表)是结构固定、列预先定义的建模方式。二者核心区别如下:
用户表 users
| id | name | age | email | phone |
entity | attribute | value
-------|-----------|------
1 | name | Tom
1 | age | 25
1 | email | a@x.com
2 | height | 180
| 对比维度 | 传统表 | EAV 模型 |
|---|---|---|
| Schema | 固定 | 动态 |
| 扩展性 | 差(需 ALTER TABLE) | 好(直接插数据) |
| 空值问题 | 大量 NULL | 不存在 |
| 查询复杂度 | 低 | 高 |
| 性能 | 高 | 较低 |
| 数据一致性 | 强 | 弱 |
| 适合场景 | 结构稳定业务 | 属性多变业务 |
✅ 优点
❌ 缺点
✅ 优点
❌ 缺点
传统表是“先定结构再存数据”,EAV 是“先存数据再定结构”。
EAV 解决的是灵活性,牺牲的是性能和简洁性。
如果你愿意,我可以结合**具体业务(如商品、病历、配置系统)**给你一个更合适的建模建议。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。