数据库表规范化(3NF)

问题描述 投票:0回答:1
| MatrikelNr [PK] | Stud.-Name | Klausur | Raum |

Matrikelnr = 学生编号,Klausur = 考试名称,Raum = 房间。

我应该将此表放入 NF3,并将它们写为带有下划线的主键的关系。

我的解决方案:

Student (Matrikelnr, Stud.-Name)
Klausur (Matrikelnr, Klausur, Raum)

但是我朋友说解决办法是:

Student (Matrikelnr, Stud.-Name, Klausur)
Klausur (Klausur, Raum)
database database-normalization
1个回答
1
投票

Student
应该只有学生信息。
Student(Matrikelnr,Stud.-Name)

Exam
应该只有考试信息。
Klausur(Klausur,Raum)

那么你需要一个表来保存多对多的关系(学生可以参加很多次考试,并且一次考试是由很多学生参加的)

StudentExam(StudentId, ExamId)
,两列都是其他 2 个表的主键。

© www.soinside.com 2019 - 2024. All rights reserved.