数据库设计 -- 三范式

数据库设计三范式

 

1NF:字段不可再分

例如:

表:id,user_name(first_name,last_name),应该将user_name拆分成两个字段

 

2NF:一个表只做一件事

例如:

表:学号, 姓名, 年龄, 课程名称, 成绩, 学分;这种情况就应该拆分成三个表,学生信息表、课程表、学生和课程关系表

 

3NF:不应该有依赖于非主键的列

例如:

表:id、总价、数量、平均价 ;平均价是由总价除以数量得到的,而不是依赖于主键的,这样不行

 

 

适当的时候反范式

当数据表查询要求比较高的时候,可以适当地反范式来满足查询要求。


 

      我们提倡高级冗余(派生性冗余),反对低级冗余(重复性冗余)。
 

猜你喜欢

转载自youyu4.iteye.com/blog/2342393