数据库设计三范式

33次阅读
没有评论

共计 515 个字符,预计需要花费 2 分钟才能阅读完成。

三范式

第一范式:任何一张表都应该有主键,每个字段是原子性的不能再分。

第二范式:建立在第一范式基础上,另外要求所有非主键字段完全依赖主键,不能产生 部分依赖

学生编号(PK)教师编号(PK)学生姓名教师姓名
10011张三王老师
10022李四赵老师
10031王五王老师
10012张三赵老师

上表虽然符合第一范式,但违背第二范式,学生姓名、老师姓名都产生了部分依赖,导致数据冗余。

第三范式:建立在第二范式基础上,非主键字段不能 传递依赖 于主键字段。

学生编号(PK)学生姓名班级编号班级姓名
1001张三1一年一班
1002李四2一年二班
1003王五3一年三班
1004赵六3一年三班

上表因为产生了传递依赖,导致班级名称冗余。

表设计

一对多(学校 – 学生):一对多两张表,多的表加外键。

多对多(学生 – 课程):多对多三张表,关系表加外键。

一对一第一种方案:主键共享。

hid(主键)hname
1张三
2李四
3王五
wid(主键 + 外键)wname
1小花
2小兰
3小红

一对一第二种方案:外键唯一。

hid(主键)hname
1张三
2李四
3王五
wid(主键)wnamehid(外键 +unique)
1小花1
2小兰2
3小红3

最终设计以满足客户需求为原则,有的时候会拿空间换速度。

正文完
post-qrcode
 0
三毛
版权声明:本站原创文章,由 三毛 于2024-05-17发表,共计515字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)