0

在将表规范化为 3NF 后,我无法理解如何表示外键。

让我们以这种方式考虑表格:

student(studentid,studentname,courseid,coursename,dateofexam,marks,grade)

我可以如下计算出FD:

studentid -> studentname
courseid -> coursename
{student,courseid} -> dateofexam,marks
marks -> grade

现在我正在尝试为具有如下非 ket 属性的 FD 创建一个新表:

marks grade
studentid studentname

现在如何将这些表的外键与我的旧表关联起来student?我对这样做感到困惑。

提前致谢。

4

1 回答 1

1

您的 FD 实际上向您展示了如何:

studentid -> studentname
courseid -> coursename
{student,courseid} -> dateofexam,marks
marks -> grade

每行将是一个单独的表。其他表中存在的键是 fk。在这种情况下:

{student,courseid} -> dateofexam,marks

那将是学生ID,课程ID和标记(可能也必须是ID)

会是这样的

学生(学生身份,学生姓名)

课程(课程ID,课程名称)

考试(examid、fk_studentid、fk_courseid、dateofexam、fk_markid)

分数(markid,等级)

于 2013-03-02T06:10:51.690 回答