首先,我将描述我的应用程序以及您可以用它做什么,然后我将向您展示我的实体之间的技术关系,当然是问题。
我的应用程序工作流程:
1。)用户可以创建“ReleaseVersion”对象并为其命名,如“MyApp_v7.5.0.132”。 2.)对于此ReleaseVersion,他将创建一个名为“BookingTest”的模板,该模板由许多OrganisationUnit对象(层次结构)组成,其中每个OrganisationUnit可以有许多TemplateTeststep对象。
3.)TemplateTeststep对象由以下字段组成:
a) PreCondition
b) Teststep
c) ExpectedResult
4。)创建Template对象后,他正在创建一个基于前一个创建的Template的Testplan对象。 5.)测试计划应该显示在 userinterface 相同的OrganisationUnits中,但我需要显示仅与Testplan相关的其他字段而不是TempalteTeststep对象:
d) Error/Exception
e) TestStatus
所以在Testplan中有OrganisationUnit TreeView和一个带有5个字段a,b,c,d,e的DataGrid。
5)。 当我单击保存测试计划按钮时,字段a,b,c将使用属于模板的字段进行更新。 当我单击保存测试计划按钮时,字段d和e将使用属于XXX的字段进行更新。
未知组件是XXX。我已经考虑过一个名为“TestplanTeststep”的表,其中包含2个字段。
但是这与其他表格有关吗?
最重要的是,我必须非常小心, TemplateTeststep 和 TestplanTeststep 具有相同的ID,当我将它们保存到数据库并在下次检索它们时我可能会混淆数据。
到目前为止,实体关系“描述”:
1 ReleaseVersion有N Testplan (这对我来说似乎是正确的,因为Testplan仅对某个ReleaseVersion有效)
N Testplan有M单位(这是错误的)
1个单位有N个TestplanTeststep (这里有错误)
1模板有N个测试计划(这对我来说似乎是正确的,因为一个测试计划不能属于另一个模板,在创建之后它在其他任何上下文中都没用,只是打开它)
1模板有N单元(这对我来说似乎是正确的,因为某个UnitId不能用于另一个模板,不需要它,每个模板都有自己的树/ OrganisationUnit数据)
1个单位有N个TemplateTeststep (这对我来说似乎是正确的,因为这3个字段a,b,c属于某个UnitId,而在TreeView中只有加载的OrganisationUnits与模板有关测试计划)
最后一个问题:
在我的实体关系中需要做些什么才有意义?
愚蠢的事情是TemplateTeststep和TestplanTeststep的分离,因为它们实际上可能是一个对象或一个表。但是,我会用字段a,b,c保存大量重复数据,这对于每个模板都是相同的,因此也适用于每个Testplan。
答案 0 :(得分:0)
我在这里看到的主要问题是:如果每个模板都有TemplateTeststeps,但每个模板也可以作为TestPlan的一部分,我们如何跟踪结果?看起来你正在考虑让每个TestPlan保存这些TestSteps的副本,并附加额外的结果字段,但这不是可行的方法。
我处理这个问题的方法是使用多对多表(TestPlan和TemplateTeststep的外键),它还包含这些额外的结果字段(Error和TestStatus)。因此,您不会复制有关测试步骤的信息(字段a-c),但您确实有机会将每个步骤放入许多TestPlans并记录其结果。