0

まず、自分のアプリケーションとそれを使って何ができるかを説明し、最後に私のエンティティ間の技術的関係を表示します。ER:エンティティ関係図

私のアプリケーションのワークフロー:

1)利用者は、「ReleaseVersion」オブジェクトを作成し、それを「MyApp_v7.5.0.132」のような名前を付けることができます。 2.)このReleaseVersionでは、彼は、各OrganisationUnitが多くのTemplateTeststepオブジェクトを持つことができる多くのOrganisationUnitオブジェクト(階層構造)からなる "BookingTest"のような名前のテンプレートを作成します。

3)TemplateTeststepオブジェクトは、これらのフィールドで構成されています:

a) PreCondition 
b) Teststep 
c) ExpectedResult 

4)彼は、彼がかつて作成したテンプレートに基づか試験プランオブジェクトを作成しているテンプレートオブジェクトを作成した後。 5)ユーザインタフェース同じOrganisationUnitsではなく、私は名前のONLY試験プランに関連する追加フ​​ィールドを表示する必要がTempalteTeststepオブジェクトの試験プランSHOULD表示:

d) Error/Exception 
e) TestStatus 

だから、試験プランでOrganisationUnit TreeViewと5つのフィールドa、b、c、d、eを持つDataGridがあります。

5.) [テストプランの保存]ボタンをクリックすると、フィールドa、b、cがテンプレートに属するフィールドで更新されます。 Save Testplanボタンをクリックすると、フィールドdとeがXXXに属するフィールドで更新されます。

未知の成分はXXXです。私はすでに2つのフィールドを持つ "TestplanTeststep"という名前のテーブルについて考えました。

しかし、これに関連する他の表はありますか?私はデータベースに保存し、それらに私がデータをミックス可能性があり、他の次の時間を取得するときTemplateTeststepTestplanTeststepが同じIDを持っていることを、非常に気をつけなければならないなかでも

1 ReleaseVersionはN試験プラン

N試験プランを持っている(試験プランは、特定のReleaseVersionに対してのみ有効であるため、それは私には右のようです)があります。これまでのエンティティの関係「の説明」ザッツ

M単位(ここで何かが間違っている)

1単位はN TestplanTeststep(ここで何かが間違っている)

を持っています10

1テンプレートは、N試験プラン(試験プランは、別のテンプレートに属することができませんので、それはちょうどそれを開くと、作成した後、その無他のコンテキストで使用される、右の私には思える)

1テンプレートは、N個のユニットを持っているがあります

1単位はN TemplateTeststepを持っている(特定のUNITIDはそれのための必要は、すべてのテンプレートは、独自のツリー/ OrganisationUnitデータを持っていない別のテンプレートに `t使用することができるので、それは私には右のようだ)(つまり右に思えますこれらの3つのフィールドa、b、cは特定のUnitIdに属し、ツリービューではOrganisationUnitsのみがロードされているためです試験プランのテンプレート)に高揚

最後の質問:すべてが理にかなって私のエンティティの関係に何をすべきか

愚かなことは、実際にONEオブジェクトまたはONEテーブルである可能性があるため、TemplateTeststepとTestplanTeststepの分離です。しかし、その後、すべてのテンプレートについて同じようなフィールドa、b、cで重複したデータをたくさん保存するので、すべてのテストプランにも適用されます。

+0

質問の要点を見るのを助けるためにこれをもう少し解くことができれば、より良い回答を得ることができます。私はやってみました。 – grossvogel

+0

また、タイトルに示されているように、ダイアグラムにリンクすると役立つ場合があります。 – grossvogel

答えて

0

私が見ている主な質問は、それぞれのテンプレートにTemplateTeststepsが含まれていても、それぞれがTestPlanの一部として機能することができる場合、結果をどのように追跡するのでしょうか?各TestPlanに余分な結果フィールドを持つTestStepのコピーを保持させることを検討しているようですが、これは方法ではありません。

これを処理する方法は、これらの追加の結果フィールド(ErrorおよびTestStatus)も保持する多対多のテーブル(TestPlanおよびTemplateTeststepへの外部キー)です。したがって、テストステップ(フィールドa〜c)についての情報は複製しませんが、これらの各ステップを多くのTestPlansに入れて結果を記録する機会があります。

+0

そういう意味ですか? => http://i42.tinypic.com/2f06tkk.png、結果テーブルの主キーは両方の外部キーになります。 – Pascal

+0

@Pascal:はい。これは多対多が通常実装される方法です。この場合、関係には余分なデータが含まれます。 – grossvogel

+0

私のスクリーンショットでは、TestplanId(FK)にIDが2回あることがわかります。== 1これは正しいとは限りませんね。 – Pascal