MySQL:三个彼此相关的表

时间:2016-08-18 11:39:18

标签: mysql sql database

我正在设计一个存储软件测试数据的数据库。基本思路如下:我想存储每个测试配置的信息,每个测试软件版本和每个发现的错误。

我想要执行的查询示例如下。我想找到使用特定软件在特定配置中找到的所有故障。

我的问题与表格设计有关,更具体地说是与它们之间的关系。这种设计是否适用于我的情况:

design

或者如果表“fault”与表“configuration”直接相关会更好吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

嗯,是的,最好将“fault”直接链接到“configuration”,因为configuration_id应该是“configuration.configuration_id”(主键)的外键。但是,如果每个“软件”只有一个“配置”,那么,由于您已经将“software_id”引用到“fault”表中,因此您不需要将“configuration_id”添加到“fault”中,因为它已经存在进入“软件”表。

您将通过此查询检索所有数据:

SELECT * FROM fault INNER JOIN software ON fault.software_id = software.software_id INNER JOIN configuration ON software.configuration_id = configuration.configuration_id

然后,只需从“fault”表中删除“configuration_id”。