白话数据库设计范式
主要有4种范式,1NF,2NF,3NF,BCNF(前3个称为第x范式,第4个忘了是什么意思了,BC好像是人名),按从左至右的顺序一种比一种要求更严格。要符合某一种范式必须也满足她前边的所有范式。一般项目的数据库设计达到3NF就可以了,而且可根据具体情况适当增加冗余,不必教条地遵守所谓规范。
说白了,1NF就是要求一张表里只放相互关联的字段,不要把风的方向,马的品种和牛的数量3个字段放在一张表里,这只是最基本的要求,其实不说也没人会这样做。至于2NF,3NF,BCNF虽然描述的内容不同,但表现在数据特点上很相似,就好比在说不要为了把你哪天(A)和哪个女孩(B)的约会记下来,就把的女孩姓名(B)、胸围(C)都放在同一张表里,即不要用ABC一张表,而应该用AB,BC两张表,以尽量避免浪费数据存储空间。因为和同一个女孩可能会约会好几次,但没必要每次都记录她的胸围。
主要有4种范式,1NF,2NF,3NF,BCNF(前3个称为第x范式,第4个忘了是什么意思了,BC好像是人名),按从左至右的顺序一种比一种要求更严格。要符合某一种范式必须也满足她前边的所有范式。一般项目的数据库设计达到3NF就可以了,而且可根据具体情况适当增加冗余,不必教条地遵守所谓规范。
说白了,1NF就是要求一张表里只放相互关联的字段,不要把风的方向,马的品种和牛的数量3个字段放在一张表里,这只是最基本的要求,其实不说也没人会这样做。至于2NF,3NF,BCNF虽然描述的内容不同,但表现在数据特点上很相似,就好比在说不要为了把你哪天(A)和哪个女孩(B)的约会记下来,就把的女孩姓名(B)、胸围(C)都放在同一张表里,即不要用ABC一张表,而应该用AB,BC两张表,以尽量避免浪费数据存储空间。因为和同一个女孩可能会约会好几次,但没必要每次都记录她的胸围。