将一个主键设置为多个表的外键的任何简单方法

时间:2017-05-25 15:28:43

标签: mysql database join wamp

我有一张桌子

program(p_id(pk), program_name)

和其他三个表:

graduate_survey(id(pk),PO1_avg,PO2_avg,program_name,session)

alumni_survey(id(pk),PO1_avg,PO2_avg,program_name,session),

faculty_survey(id(pk),PO1_avg,PO2_avg,program_name,session) ...

我必须将三个表与程序表链接起来......如何在MySQL中链接这些表? graduate_survey, alumni_survey,faculty_survey是为某些特定程序计算的一些表单...如果在表单graduate_surveyalumni_surveyfaculty_survey中没有用于输入program_name的文本框,但如果我在数据库表中创建了列名'program_name',我可以通过引用program表来输入program_name吗?是否会有任何连接查询?

1 个答案:

答案 0 :(得分:1)

在其他表中使用程序ID作为外键,如下所示:

program(p_id(pk), program_name)
graduate_survey(id(pk),PO1_avg,PO2_avg,p_id(fk),session), 
alumni_survey(id(pk),PO1_avg,PO2_avg,p_id(fk),session), 
faculty_survey(id(pk),PO1_avg,PO2_avg,p_id(fk),session)

为了FK约束,你真的不需要程序名称,但是在某些时候它可能仍然很好。

这样您就可以根据p_id轻松加入,例如:

"SELECT * FROM program INNER JOIN graduate_survey ON program.p_id=graduate_survey.p_id WHERE <your condition here>"

希望这有帮助。