程序员如何做「数据库设计」:不是建表,是业务建模

程序员如何做「数据库设计」:不是建表,是业务建模

很多程序员觉得数据库设计就是把表建起来。

但真正的数据库设计,是对业务的建模。


一、好的数据库设计的目标

1. 数据不丢失

该存的数据都能存,不会因为设计问题丢数据。

2. 查询高效

查询要快,不能一个列表页要等 3 秒。

3. 易于扩展

业务变了,表结构能方便调整。

4. 数据一致

相关联的数据保持一致,不会出现"订单有,用户没了"的情况。


二、数据库设计的步骤

1. 理解业务

这个系统要做什么?核心实体是什么?

2. 确定实体

用户、订单、商品——核心实体有哪些?

3. 确定关系

4. 确定属性

每个实体有哪些属性?

5. 画 ER 图

把实体、关系、属性画出来。


三、设计原则

1. 第一范式(1NF)

每个字段都是原子的,不可再分。

2. 第二范式(2NF)

非主键字段完全依赖于主键。

3. 第三范式(3NF)

非主键字段不依赖于其他非主键字段。

4. 反范式

为了性能,可以适当冗余。


四、常见的错误

❌ 字段设计不合理

把多个值存在一个字段里(如"北京,上海,深圳")。

❌ 关系设计混乱

该拆的没拆,该合的没合。

❌ 忽视索引

查询慢,不知道加索引。

❌ 不考虑扩展性

"这个字段最多存 100 个字符"——谁知道呢?


五、一句话总结

数据库设计 = 理解业务 + 确定实体和关系 + 遵循范式 + 考虑性能

/*]]>*/