数据库设计范式(设计规范)(Normal Form)
-
1NF
- 强调列的原子性,即列不能再分成其他几列。
-
2NF
- 首先是1NF,另外包含两部分内容,一是一个表必须有一个主键;二是没有包含在主键中的列必须完全依赖主键,而不是只依赖于主键的一部分。
-
3NF
- 首先是2NF,另外非主键列必须直接依赖主键,不能存在传递依赖,即不能存在;非主键列A依赖非主键列B,非主键列B依赖主键的情况。
-
E-R模型
- E表示entry,实体,设计实体就像定义一个类一样,指定从哪些方面描述对象,一个实体转换为数据库中的一个表。
- R表示relationship,关系,关系描述两个实体之间的对应规则,关系的类型包括包括一对一、一对多、多对多。
- 关系也是一种数据,需要通过一个字段存储在表中
- 实体A对实体B为1对1,则在表A或表B中创建一个字段,存储另一个表的主键值
- 实体A对实体B为1对多:在表B中创建一个字段,存储表A的主键值
- 实体A对实体B为多对多:新建一张表C,这个表只有两个字段,一个用于存储A的主键值,一个用于存储B的主键值
-
逻辑删除
- 对于重要数据,并不希望物理删除,一旦删除,数据无法找回。
- 删除数据:设置isDelete的列,类型为bit,表示逻辑删除,默认值为0。
- 对于非重要数据,可以进行物理删除。
- 数据的重要性,要根据实际开发决定。