问题:一个表的外键一定是另一个表的主键?
这种说法怎么解释呢?

解决方案 »

  1.   

    如果 F是关系R的一个属性或者属性组,但不是关系R的主键;K是另一个关系S的主键。且F和K相对应。
    那么 则称F是关系R的外码。(这是教材上对外码的定义)从定义中不难看出F一定和另外一个表(S)的主键是对应的,也就是说一定是另外一个表(S)的主键。但是在此表(R)中外键的值可以为空,不应定非要取值。比如这里有两张表:
    学生选课表(学号,姓名,课程号)  
    课  程  表(课程号,任课教师)
    可以看出“课程号”是表“学生选课表”的外键,同时也是表“课程表”的主键,
    在这里它就可以取空值,表示有一个学生没选课。