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

问题描述:

我有一个表任何简单的方法来设置一个主键作为外键到多个表

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) ...

I必须链接三个表与程序表...如何链接这些表在MySQL中? graduate_survey, alumni_survey,faculty_survey是针对某些特定程序计算的某些表单...如果以graduate_survey,alumni_survey,faculty_survey的形式存在没有用于输入program_name的文本框,但是如果我在数据库表中创建了一个列名“program_name”我可以通过参考program表来输入program_name吗?是否有任何连接查询?

使用程序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>" 

希望这有助于。

+0

建议任何加入查询加入任何表与程序表.... –

+0

在加入后如何插入毕业生调查中的值?是否会有插入选择操作? –

+0

插入语句在连接后看起来相同。连接实际上并不只是在查询结果中加入数据库中的表。因此,插入语句:'INSERT INTO'graduate survey'('PO1_avg','PO2_avg','p_id','session')VALUES('x','y','z','xy')' – nge