我正在为一个类项目构建一个Access数据库,并且有一个关于外键的问题。能给我两个外键复本在一个桌子上吗?
我之所以问这个问题,是因为我有一个顾问表,它使用顾问的电子邮件地址作为主键。但是,学生们可以有两个顾问的所以在我的学生桌上,我可以有两个顾问的电子邮件,因为他们会让我两个相同的外键。
谢谢!
发布于 2016-04-21 15:55:23
不,表中不能有重复的主键。那就不是PK了。
用第三张桌子把你的学生和你的顾问联系起来。
例如:
顾问表有: AdvisorEmail(PK)和myemail@outlook.com值,youremail@ouitlook.com 学生表有: StudentID(PK)值1,2
StudentAdvisor table只有两个字段: 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.StudentIDhttps://stackoverflow.com/questions/36774064
复制相似问题