数据库设计三范式
1NF:字段不可再分
例如:
表:id,user_name(first_name,last_name),应该将user_name拆分成两个字段
2NF:一个表只做一件事
例如:
表:学号, 姓名, 年龄, 课程名称, 成绩, 学分;这种情况就应该拆分成三个表,学生信息表、课程表、学生和课程关系表
3NF:不应该有依赖于非主键的列
例如:
表:id、总价、数量、平均价 ;平均价是由总价除以数量得到的,而不是依赖于主键的,这样不行
适当的时候反范式
当数据表查询要求比较高的时候,可以适当地反范式来满足查询要求。
我们提倡高级冗余(派生性冗余),反对低级冗余(重复性冗余)。