一、简单的说
1NF:字段不可再分。
2NF:每个表只表示一个事物
3NF:每列都与主键有直接关系
二、举例
1NF
不满足的示例:
name | hobby |
jack | football,basketball |
修改后(这个应该是多对多的关系了)
2NF
不满足的示例(可以说一张表多个主键,记录多种数据):
studentid | studentname | courseid | coursename | coursecredit |
1 | jack | 2 | chinese | 2 |
修改:
拆成2个表就行了
courseid | coursename | coursecredit |
2 | chinese | 2 |
studentid | studentname |
1 | jack |
3NF
不满足的示例(邮编以及省份是跟location相关的,跟studentid无关):
studentid | studentname | location | zipcode | |
1 | jack | china | 100000 |
改成:
studentid | studentname | locationid |
1 | jack | 1 |
locationid | location | zipcode |
1 | china | 1000000 |