我正在设计一个存储软件测试数据的数据库。基本思路如下:我想存储每个测试配置的信息,每个测试软件版本和每个发现的错误。
我想要执行的查询示例如下。我想找到使用特定软件在特定配置中找到的所有故障。
我的问题与表格设计有关,更具体地说是与它们之间的关系。这种设计是否适用于我的情况:
或者如果表“fault”与表“configuration”直接相关会更好吗?
提前致谢。
答案 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”。