今天学习了数据库的范式设计,受益颇多,故此记录。

记一篇SQL笔记

一、树形结构

问:如何用最少的表和字段设计一个树形结构?

答:一个表,三个字段(或两个字段);如:idpidpname(或不要)

二、基础技巧

a) “对”(正确性)

1) 一个表(实体完整性)

  1. 需要主键(PK)保证每条数据的 唯一性(即实体完整性)(如:加一个id字段作为主键);

  2. 尽量使用 非业务字段 做PK(如学生表中不用学号做PK,而另外新建一个 非业务字段id 作为主键,因为学号属于其中的业务字段,一旦发生改动,主键无法变动就 芭比Q 了);

2) 多个表(FK)(参照完整性)

  • 建立 外键 去保证表与表之间的关系

b) “好”(“尺”:范式)(范式共有 5 级)(平时三级就够了)

  1. 一级范式(1NF):简单二维表(字段中不能再有集合)

  2. 二级范式(2NF):消除部分函数依赖(小技巧:比如给每一个表 都加一个非业务字段 作为PK即可)

  3. 三级范式(3NF):消除 传递函数依赖(即一个非主键值不能由另一个非主键值推算出来,因为后期维护表时会付出巨大的成本)