Сначала я опишу свое приложение и то, что вы можете с ним сделать, затем я покажу вам технические отношения между моими сущностями, в конце, конечно же, возникает вопрос.
Рабочий процесс моих приложений:
1.) Пользователь может создать объект «ReleaseVersion» и дать ему имя, например «MyApp_v7.5.0.132». 2.) Для этой ReleaseVersion он создаст шаблон с именем вроде «BookingTest», который состоит из множества объектов OrganisationUnit (иерархическая структура), где каждый OrganisationUnit может иметь множество объектов TemplateTeststep.
3.) Объект TemplateTeststep состоит из следующих полей:
a) PreCondition
b) Teststep
c) ExpectedResult
4.) После того, как он создал объект «Шаблон», он создает объект «План тестирования» на основе ранее созданного шаблона. 5.) План тестирования ДОЛЖЕН отображать в пользовательском интерфейсе те же самые OrganisationUnits, но вместо объектов TempalteTeststep мне нужно отображать дополнительные поля, которые относятся ТОЛЬКО к названному плану тестирования:
d) Error/Exception
e) TestStatus
Таким образом, в Testplan есть TreeView OrganisationUnit и DataGrid с 5 полями a, b, c, d, e.
5.) Когда я нажимаю кнопку «Сохранить план тестирования», поля a, b, c обновляются полями, принадлежащими шаблону. Когда я нажимаю кнопку «Сохранить план тестирования», поля d и e обновляются полями, принадлежащими XXX.
Неизвестный компонент — XXX. Я уже думал о таблице под названием «TestplanTeststep» с двумя полями.
Но с какой другой таблицей это должно быть связано?
Прежде всего, я должен быть очень осторожным, чтобы TemplateTeststep и TestplanTeststep имели один и тот же идентификатор, когда я сохраняю их в базу данных и извлекаю их в следующий раз, иначе я мог бы перепутать данные.
Пока это "описание" отношения сущностей:
1 ReleaseVersion имеет N Testplan (мне кажется, что это правильно, потому что Testplan действителен только для определенной ReleaseVersion)
В плане тестирования N используется блок M (здесь что-то не так)
У 1 модуля есть N TestplanTeststep (здесь что-то не так)
1 шаблон имеет N Testplan (мне кажется, что это правильно, потому что Testplan не может принадлежать другому шаблону, после его создания он не используется ни в каком другом контексте, а просто открывается)
1 шаблон имеет N единиц (мне кажется, что это правильно, потому что определенный UnitId не может использоваться в другом шаблоне, в нем нет необходимости, каждый шаблон имеет свое собственное дерево/данные OrganizationUnit)
У 1 модуля есть N TemplateTeststep (мне кажется, что это правильно, потому что эти 3 поля a, b, c принадлежат определенному UnitId, а в TreeView представлены только загруженные OrganisationUnits, связанные с шаблоном плана тестирования)
Заключительный вопрос:
Что нужно сделать в моих отношениях сущностей, чтобы все имело смысл?
Глупость заключается в разделении TemplateTeststep и TestplanTeststep, потому что на самом деле они могут быть ОДНИМ объектом или ОДНОЙ таблицей. Но тогда я бы сохранил много повторяющихся данных с полями a, b, c, которые одинаковы для каждого шаблона, а значит, и для каждого плана тестирования.