【问题标题】:Not sure of my use of foreign keys不确定我使用外键
【发布时间】:2014-11-23 05:14:09
【问题描述】:

我正在构建一个系统,让学生可以在他们离开后查看他们的结果。该系统应该在学生进入下一年的课程期间记录学生的分数。我不确定我在 Module_tests 表中使用外键。我在此表中有两个外键来标识特定学生和特定模块的测试标记。我猜这对外键是 Module_tests 表的主键。这是一个明智的设计吗?有没有更高效的?

提前致谢

Student 表有三列:StudentID、名字、姓氏。 模块表有三列:ModuleID、ModuleName、Year。 Module_tests 表有五列:StudentID、ModuleID、Assignment、PracticalTest、FinalExam。 (希望文字清晰,因为我的帖子中无法附加图片)

【问题讨论】:

    标签: database erd


    【解决方案1】:

    我认为您应该在 Module_tests 中添加一个额外的列,它可以是主要的和自动增量的。

    在学生必须重新学习一个模块的情况下,您的数据库的完整性可能会受到损害。除此之外,您的桌子看起来还不错。

    【讨论】:

      【解决方案2】:

      this question 中询问了一个通过两个外键唯一标识行的联结表,答案在这里非常适用。

      【讨论】:

      • 但是 Module_tests 还有另外三列。我知道一个联合表只有两个外键,否则它是一个实体表。
      • 关系可以有属性。 (一些专家不同意)
      猜你喜欢
      • 1970-01-01
      • 2018-06-25
      • 2020-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-26
      • 2018-01-06
      相关资源
      最近更新 更多