一个好的高效的数据库必需要好的设计,范式的好处就是,(优点)减少数据冗余;减少数据的空间;减轻维护数据库的麻烦;
(缺点)但是操作困难;需要联合多张表一起查询;越高的范式性越能差; 范式也要权衡是否使用更高的范式麻烦!
【注意:一般在项目中用到的是第三范式,已经足够满足需求,性能也基本满足】
第一范式: 数据库表每一列数据都是不可分割的基本数据列;同一列不能有多个值 ,或者重复值。(每个数据项都是原子项,不可分割)
第二范式:范级理论是逐级递增的过程,即满足第一范式,而且这个表中的非主键字段都依赖这个表的主键,即满足第二范式2NF;
(如果非主键,而且不依赖本表,则应该抽出一张独立表出来,依赖外键!以减少数据冗余!第二范式消除部门依赖!)
第三范式:满足第二范式2NF;所有非主键对任务后选关键字都不存在传递依赖,即为第三范式3NF;
简单的说,
第一范式就是列的原子性,字段不可再分割;
第二范式就是完全依赖,没有部分依赖;
第三范式就是没有传递依赖。