我正在为一个类项目构建一个Access数据库,并且有一个关于外键的问题。我可以在表格中有两个重复的外键吗?
我之所以提出这个问题,是因为我有一个顾问表,它使用顾问的电子邮件地址作为主键。但是,学生可以在我的学生桌上有两位顾问,我可以有两位顾问的电子邮件,因为他们都会使用相同的外键。
谢谢!
答案 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