数据库设计的三范式

1NF:无重复的列,即每一列都是不可分割的基本数据项

如下表所示:第三行记录的 color 列包含了两个颜色值。

商品表 goods:

id price color
1 10 red
2 20 blue
3 30 red, blue

可以拆分为两个表,价格表和颜色表:
价格表 goods_price:

id price
1 10
2 20
3 30

颜色表 goods_color:

id color
1 red
2 blue
3 red
3 blue

2NF:属性完全依赖于主键

如下表所示:学分依赖于课程,不依赖于主键学号

考试成绩表 exam:

学号 姓名 课程 学分 成绩
1 Tom 数学 4 80
2 Kate 数学 4 90

可以拆分为三个表,学生信息表,课程表和考试成绩表:

学生信息表 student:

学号 姓名
1 Tom
2 Kate

课程表 course:

课程编号 课程名 学分
101 数学 4
102 语文 2

考试成绩表 exam:

学号 课程编号 成绩
1 101 80
2 101 90

3NF:属性不依赖于其他非主属性,即不能有冗余

如下表所示:班主任手机依赖于班主任姓名 这个非主属性

学生信息表 student:

学号 姓名 班主任姓名 班主任手机
1 Tom Lily 138
2 Kate Lily 138

可以拆分为两个表,学生信息表,班主任信息表:

学生信息表 student:

学号 姓名 班主任姓名
1 Tom Lily
2 Kate Lily

班主任信息表 teacher:

班主任姓名 班主任手机
Lily 138
Cat 139
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容