У меня есть система, в которой пользователь отвечает на вопрос в форме. У меня есть объекты, представляющие эту модель, но я не совсем уверен, как организовать эти объекты с точки зрения DDD.
- Форма (имеет свой список) Разделы;
- Раздел -> (имеет свой список) Группы;
- Группа -> (есть свой список) Вопросы;
- Вопрос -> (может иметь собственный список подвопросов) Вопросы;
- Вопрос -> (есть свой список) Ответы;
- Ответ -> (есть свой список) Answer_Details;
- Answer_Detail -> (потенциально имеет свой собственный список дополнительных деталей) Sub_Answer_Details.
Каждый объект имеет более 15 свойств, и каждое из них не имеет смысла без своего родителя. Согласно DDD, я считаю, что сущность формы должна быть агрегатным корнем, а все другие объекты должны быть объектами значений. Это означает, что мне нужен репозиторий только для сущности формы. В этом случае FormRepository будет загроможден всевозможными CRUD-методами для дочерних объектов. Верны ли мои рассуждения с точки зрения DDD? Это нормально, что я получаю очень обширную совокупность? Я считаю, что такое представление может легко привести к проблемам с производительностью.