SQL Server中表之间的关系

时间:2014-03-01 10:47:19

标签: sql-server-2008 relationship

我在SQL Server 2008数据库中有两个表

  • Courses - CourseID[PK], CourseName, UnivID[Foreign Key] //可以有多个值
  • University UnivID[PK], UnivName, AvailableCourse[foriegn key ] //可以有很多课程

现在,一门课程可以在不止一所大学上学,一所大学也可以开设多门课程。

那么如何将这两个表联系起来呢?我想避免使用逗号分隔值。

2 个答案:

答案 0 :(得分:0)

这称为多对多关系。你会在网上找到很多文章。基本上,您从课程表中取出UniversityId,并创建另一个包含UniversityId和CourseId列的大学课程表。这表示哪些课程由哪所大学提供。

有一个很棒的writeup with examples here

答案 1 :(得分:0)

您基本上需要一个包含两个主键的“中间”或“链接”表:

University_Course (UnivID, CourseID)

通过在该表中添加行,您可以将任意数量的大学与任意数量的课程相关联。

  • University_Course.UnivIDUniversity.UnivID
  • 的外键
  • University_Course.CourseIDCourses.CourseID
  • 的外键