Следующая картина является частью базы данных результатов тестирования программного обеспечения, что я проектирования: designвнешних ключей во многих-ко-многим
Мой вопрос связан с таблицей fault
. Нужен ли мне внешний ключ, связанный с таблицей configuration
в моей таблице fault
, чтобы сделать запрос, который, например, вернет мне данные, связанные со всеми тремя таблицами (configuration
связан с и fault
связан с оба: software
и configuration
). Или должны ли отношения разрабатываться по-разному?
Если у меня были отношения «один ко многим» между таблицами, MySQL Workbench автоматически создавал внешние ключи в необходимых таблицах. Но это все MySQL Workbench автоматически создается, когда я использую отношения «многие ко многим».
Заранее спасибо.
EDIT:
Я вручную добавить некоторые данные через PHPMyAdmin. Тем не менее, я пытаюсь выполнить этот запрос:
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;
Я получаю сообщение об ошибке:
1066 - не уникальный настольный/псевдоним: 'программное обеспечение'
я на правильном пути?
EDIT2:
На самом деле я начал сомневаться мой дизайн. Я не думаю, что я могу связать конкретные ошибки с конкретной конфигурацией с этим дизайном, поскольку между конфигурацией и ошибкой нет прямой связи. Должен ли я проектировать его по-другому?
Если у вас есть косвенные отношения, подобные этому, вы используете несколько запросов в запросе для получения связанных данных. – Barmar
@Barmar Я добавил еще один вопрос, пожалуйста, проверьте его, если у вас есть время – ilari100
Когда таблица появляется в нескольких предложениях 'FROM' или' JOIN', вам нужно дать им псевдонимы, чтобы вы могли их отличить. – Barmar