数据库中的外键

时间:2015-11-20 14:15:54

标签: mysql database

此表应包含外键,以允许与其他两个表格进行合理的链接,以及每次考试的日期。

那么我被要求做什么呢? 所有其他表格都已填充。

3 个答案:

答案 0 :(得分:1)

这看起来像是经典的“多对多”关系问题。

一名学生可以学习一门以上的科目

学生可以学习以上学生

仅使用您给出的两个表格无法轻易地建模。

传统的模式是引入第三张表格,其中包含学生正在研究哪些科目的详细信息。

该表通常包含参与多对多关系的表的id,因此在您的情况下,它将具有student_id和subjects_id。这些将使用外键约束来定义回学生和主题表。

page可能会帮助您理解这一点。

顺便说一下 - 主题表上的主键约束看起来有点让我怀疑......

答案 1 :(得分:0)

首先,主题表的PRIMARY KEY应为subject_id,因为您可能在同一天进行2次期末考试。

答案 2 :(得分:0)

CREATE TABLE IF NOT EXISTS entries(
    entry_id INT UNSIGNED NOT NULL AUTO_INCREMENT,( PK)
    student_id INT UNSIGNED NOT NULL,(FK From students table)
    subject_id INT UNSIGNED NOT NULL,(FK From subjects table )
); 

你需要使(student_id,subject_id)组合独特,因为它不应该重复。这是草稿。假设这个表是连接学生和科目的桥梁。