2016-08-18 2 views
0

ソフトウェアテストデータを格納するデータベースを設計しています。基本的な考え方は次のとおりです。テストされた各構成、テストされた各ソフトウェアバージョン、および見つかった各障害の情報を保存します。MySQL:互いに関連する3つのテーブル

実行したいクエリの例は次のとおりです。私は、特定のソフトウェアで特定の構成で見つかったすべての障害を見つける必要があります。

私の質問は、テーブルデザイン、特にそれらの間の関係に関連しています。

design

またはテーブル「障害」が直接テーブル「の構成」に関連していた場合、それが良いだろう:私の場合は設計作業のこの種のでしょうか?

ありがとうございます。

答えて

1

さて、はい、configuration_idは "configuration.configuration_id"(プライマリキー)の外部キーである必要がありますので、 "fault"を "configuration"に直接リンクするほうがよいでしょう。しかし、 "ソフトウェア"ごとに "構成"が1つしかない場合は、すでに "ソフトウェアID"を "障害"テーブルに参照しているので、既に存在するので、 "構成ID"を "障害"に追加する必要はありません「ソフトウェア」テーブルに格納する。

あなたはこのクエリによって、すべてのデータを取得します。次に

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

を、単に「障害」テーブルから「configuration_id」を削除します。

関連する問題