L'image suivante est une partie d'une base de données de résultats des tests de logiciels que je suis la conception: designclés étrangères dans de nombreux à plusieurs relations
Ma question est liée à la table fault
. Ai-je besoin d'une clé étrangère qui est liée à la table configuration
dans ma table fault
afin de faire une requête qui, par exemple, me renverrait des données qui sont liées aux trois tables (configuration
est liée à software
et fault
est liée à les deux: software
et configuration
). Ou les relations devraient-elles être conçues différemment? Si j'avais des relations un-à-plusieurs entre les tables, MySQL Workbench créerait automatiquement des clés étrangères dans les tables nécessaires. Mais tout ceci est MySQL Workbench créé automatiquement lorsque j'utilise des relations plusieurs-à-plusieurs.
Merci d'avance.
EDIT:
I ajoutée manuellement des données via phpmyadmin. Cependant, je suis en train d'exécuter cette requête:
SELECT software_version, configuration_name, actCritical
FROM software
LEFT JOIN configuration_has_software ON software.software_id = configuration_has_software.software_id
LEFT JOIN configuration ON configuration.configuration_id = configuration_has_software.configuration_id
LEFT JOIN software_has_fault ON fault.fault_id = software_has_fault.fault_id
LEFT JOIN software ON software.software_id = software_has_fault.software_id;
Je reçois une erreur:
1 066 - Non tableau unique,/alias: 'logiciel'
Suis-je sur la bonne voie droite?
EDIT2:
En fait, j'ai commencé à remettre en question ma conception. Je ne pense pas que je puisse relier des défauts spécifiques à une configuration spécifique avec cette conception car il n'y a pas de relation directe entre la configuration et la faute. Devrais-je le concevoir différemment?
Lorsque vous avez des relations indirectes comme celle-ci, vous utilisez plusieurs jointures dans la requête pour obtenir des données connexes. – Barmar
@Barmar J'ai ajouté une autre question, veuillez la vérifier si vous avez le temps – ilari100
Lorsqu'une table apparaît dans plusieurs clauses FROM ou JOIN, vous devez leur donner des alias pour pouvoir les distinguer. – Barmar