以下图片是我正在设计的软件测试结果数据库的一部分: design
我的问题与表fault
有关。我是否需要与表configuration
中的表fault
相关的外键,以便进行查询,例如,返回与所有三个表相关的数据{{{ 1}}与configuration
相关,software
与fault
和software
相关。或者应该以不同的方式设计关系?
如果表之间存在一对多的关系,MySQL Workbench会自动在所需的表中创建外键。但是当我使用多对多关系时,这就是所有MySQL Workbench自动创建的。
提前谢谢。
编辑:
我通过phpmyadmin手动添加了一些数据。但是,我正在尝试执行此查询:
configuration
我收到错误:
我是否在正确的轨道上?
EDIT2:
实际上我开始质疑我的设计。我不认为我能够将特定故障与特定配置相关联,因为配置和故障之间没有直接关系。我应该以不同的方式设计吗?
答案 0 :(得分:1)
NO!它会打破3NF。如果您不知道它是什么和/或为什么您可能需要更多地研究ER(实体 - 关系模型)中的关系。这是一个我无法在此解释的庞大复杂话题。但是互联网上有很多文档。
答案 1 :(得分:1)
要修复错误,请尝试以下操作: 您正在加入表软件两次,但没有加入故障表。
{{1}}
我假设您已经使用LEFT JOIN来获取列出的软件,即使这些软件没有配置(或)错误(如果不是这样,您可以用INNER JOIN替换)