在将表规范化为3NF之后,我无法理解如何表示外键。
让我们以这种方式考虑这个表:
student(studentid,studentname,courseid,coursename,dateofexam,marks,grade)
我能够找出FD如下:
studentid -> studentname
courseid -> coursename
{student,courseid} -> dateofexam,marks
marks -> grade
现在我正在尝试为FD创建一个具有非ket属性的新表:
marks grade
studentid studentname
现在如何将这些表的外键与旧表student
相关联?我很困惑这样做。
提前致谢。
答案 0 :(得分:1)
你的FD实际上告诉你如何:
studentid -> studentname
courseid -> coursename
{student,courseid} -> dateofexam,marks
marks -> grade
每一行都是一个单独的表。 其他表中存在的键是fk。 在这种情况下:
{student,courseid} -> dateofexam,marks
这将是studentid,courseid和标记(也可能必须是id)
就像这样
学生( 学生卡, studentname)
场( courseid, coursename)
考试( examid, fk_studentid, fk_courseid, dateofexam, fk_markid)
标记( markid, 级)