2016-08-09 3 views
0

私はデータベースのオン/オフを扱っていますが、これは初めてのデザインです。これはすでにどこかの答えがある場合、私は満足する何かを見つけることができなかった謝罪。テーブルをデータベースに関連付けるにはどうすればいいですか

目的は、製品組み立て中に品質試験データを保存することです。さまざまなテストが各ユニットで実行できるので、テストとビルドのために多対1の関連テーブルがあります。追加する

enter image description here

次の表は、ビルドで部品番号(各単位は、数百の部分から構成されている)のリストです。物理的および論理的な観点からは、これらはBuildsテーブルに関連する必要があります。しかし、顧客は、間違いが確認された場合、テスト間で部品が切り替えられることがあるため、テストに関連しなければならないと述べました。

テストが再実行されるたびに数百の部品を複製することは、1〜2つの部品が実際に変更されているときには、膨大なスペースが必要です。しかし、私はよりよい方法を考えることができません。何か案は?

ありがとうございます。

+0

ビルドとテストの間に矢印を逆にします。私はそれを正しく読んで、多くのテスト、1つのビルド。 –

+0

@WalterMittyあなたはおそらく正しいですが、理由を説明できますか? –

+0

慣習は矢頭が「多くの端」ではなく「片端」に行くということです。 crowsfeetを使用している場合は、crowsfootが多くの目的のために行われます。 –

答えて

2

特に、パートではなくビルド自体でテストを実行しているようです。つまり、ビルドにはバージョンがあり、前のバージョンとは異なるバージョンがあるため、一部が変更されたためです。

これは、部品のセットに関連し、テストの対象となるbuild_versionテーブルが必要であることを示唆しています。

非常に多くの部分があり、バージョン間でわずかな変更しかない場合は、build_version_part_changesテーブルがあり、追加されたパーツと削除された部品の関係をbuild_versionとそのパーツとの関係で表します。

テストに失敗してパーツが変更された場合、新しいbuild_versionレコードが作成され、パーツの変更が関連付けられます。新しいbuild_versionは別のテストの対象となります。

+1

優秀な提案をありがとう、David!パーツ名に参加するのではなく、テストをパーツのセットと関連付けるというアイデアは、サイズの縮小を直接的に示していました。なぜ私がそれを考えることができなかったのか分かりません。さらに細分化するために、パーツのセットとbuild_version_part_changesテーブルが現在のビルドテーブルに関連付けられているバージョン管理の概念の変更を検討しています。必要に応じて、処理時に変更内容を確認して、特定の「バージョン」を生成することができます。 –

関連する問題