我可以在Access数据库中有重复的外键吗?

时间:2016-04-21 15:25:15

标签: database ms-access

我正在为一个类项目构建一个Access数据库,并且有一个关于外键的问题。我可以在表格中有两个重复的外键吗?

我之所以提出这个问题,是因为我有一个顾问表,它使用顾问的电子邮件地址作为主键。但是,学生可以在我的学生桌上有两位顾问,我可以有两位顾问的电子邮件,因为他们都会使用相同的外键。

谢谢!

1 个答案:

答案 0 :(得分:0)

不,您不能在表格中使用重复的主键。那时它不会是PK 使用第三张表将您的学生加入您的顾问 举个例子:
顾问表具有:AdvisorEmail(PK),其值为myemail@outlook.com,youremail @ youitlook.com 学生表具有:学生ID(PK),其值为1,2

StudentAdvisor表只有两个字段:AdvisorEmail和StudentID - 两个字段都设置为主键(复合主键)。
记录1有myemail@outlook.com / 1
记录2有youremail@outlook.com / 1

然后,您可以编写查询以撤回学生姓名和两个顾问姓名:

SELECT      Student.StudentName, 
            Advisor.AdvisorName
FROM        (Advisor INNER JOIN StudentAdvisor ON Advisor.AdvisorEmail = StudentAdvisor.AdvisorEmail) 
                     INNER JOIN Student ON StudentAdvisor.StudentID = Student.StudentID