表关系

时间:2018-07-16 09:00:36

标签: database database-design relational-database entity-relationship

如果我有下面的关系表,哪一个是正确的?

enter image description here

谢谢

1 个答案:

答案 0 :(得分:0)

可能两者都不是。一方面,关联表中的替代键是一种反模式。 B比A好,但是太复杂了。

您可能只需要一个关联表,其中包含course_id,student_id和date。假设每个学生可以参加许多课程,并且每个课程可以由许多学生参加,如果每个学生最多可以参加一次课程,则其密钥为{course_id,student_id}。或{course_id,student_id,date}(如果每个学生可以在不同的日期多次上每一门课程。

(如果每个学生可以在同一日期多次参加每门课程,我们需要更多信息。)