一、这个技术是什么?
现实业务中的用户、文章、标签和学习记录之间有关系。如果直接把所有字段堆在一张表里,修改、查询和数据一致性都会变得困难。
数据建模就是把业务概念、关系、约束和访问方式设计成可以长期维护的数据结构。
二、没有它之前发生了什么?
按页面临时设计数据字段
↓
同一信息在多处重复保存
↓
修改一个业务规则需要同步多个地方
↓
数据结构、关系和约束被显式设计
三、核心概念
1. Entity
Entity 是需要长期保存并被识别的业务对象,例如 User、Note 和 Project。
2. Relationship
关系描述对象之间如何关联,例如一个用户收藏多篇笔记。
3. Normalization
规范化通过拆分重复信息降低数据冗余和更新异常。
4. Denormalization
反规范化为了读取速度或简单查询,允许有意复制部分数据,但必须有同步策略。
5. Access Pattern
数据模型不能只看“数据长什么样”,还要考虑系统最常见的查询方式。
四、运行流程
五、面试复习
一句话回答
数据建模是把业务实体、关系、约束和主要访问方式设计成可维护的数据结构,目标是在正确性、查询效率和演进成本之间取得平衡。
高频追问
- 一对多和多对多如何建模?
- 什么时候需要反规范化?
- 为什么要设计索引?
- 如何处理历史数据和软删除?
容易答错
不要只背范式。真实系统需要结合查询模式、数据量、写入频率和一致性要求做取舍。
六、项目展示
知识平台可以把 Note、Tag、Project 和 InterviewQuestion 设计为不同实体,通过关系连接知识、项目和面试题,为知识图谱提供稳定的数据基础。