首页 文章

如何在两个表之间创建关系,其中一个表已经与另一个表 Build 了关系?

提问于
浏览
0

我试图在两个名为Courses and Students的表之间与SQL Server Management工作室 Build 多对多的关系 . 此关系使用名为Enrollment的联结表 . 我开始在学生和注册之间创建1:M关系,以便注册表中的studentId列指向Student表中的studentId列 . 这工作得很好 . 当我在课程和入学之间 Build 我的1:M关系时,我的问题就出现了 . Enrollment表中的courseId列需要指向Courses表中的courseId列 . 关系对话框出现,主键表下的列(注册自动填充了courseId和studentId .Courses表没有studentId列,所以我从主键表下的列中删除了它 . 这是我收到错误消息'表中的列注册与现有的主键或UNIQUE值不匹配 . 这种方法适用于创建学生和注册之间的1:M . 为什么我突然得到这个错误?

enter image description here

enter image description here

2 回答

  • 0

    原因是你的 Courses 表在它的主键中有2个字段 . 解决方法是在 Enrollment 表中添加名为 semesterId 的新字段,并在创建外键时使用 semesterIdcourseId .

  • 0

    您的课程主键包括不在注册表中的SemesterID . 我建议SemesterID应该在Enrollments表中,而不是在Courses表中,因为学生将在特定学期的课程中注册 .

相关问题