数据库三范式
引言
在设计数据库时,基本要求是根据数据库三范式来设计各个表。
看了一些书和文章对三范式的讲解都太啰嗦和长篇大论,因此根据我对三范式的理解,
使用简单几句话讲清数据库三范式
第一范式(1NF): 属性的原子性
要求表中设计的每个字段都具有原子性,不可再分割。
例:姓名字段,其中的姓和名必须作为一个整体,无法区分哪部分是姓,哪部分是名,如果要区分出姓和名,必须设计成两个独立的字段。
第二范式(2NF): 记录的唯一性
要求表中的所有记录(行、实例)都是唯一的,即不能有其他一模一样的记录。
要满足该范式,可在每个表中加一个字段 ,即主键字段,可根据主键来实现唯一记录。
第三范式(3NF): 数据的不冗余
要求在设计表时,一张表的字段不能有其他表的主键外的其他字段。
例:假如有 A 和 B两张表,其中B表要和A表建立联系,则在设计B表的时候,在B表里面有一个A表的主键id属性,这样B表就可以和A表建立起了联系。3NF即要求在B表中除了A表的主键id外,不能再包含A表的其他字段,如果再包含了A表的其他字段,即数据冗余。
在实际情况中,有可能会放弃第三范式来设计表…