Согласно DDD
для каждого aggregate
у меня есть repository
. Давайте рассмотрим пример:
Client (model aggregate) > ClientRepository
Visit (model aggregate) > VisitRepository
Теперь физически у меня есть таблица ассоциации в базе данных, которая связывает Client и Visit, потому что клиенты могут иметь много визитов.
Вопрос в том, должен ли я создать отдельную модель, например : ClientVisit
, который также будет aggregate
:
public class ClientVisit
{
int clientId;
int visitId;
}
Кроме того, хранилище типа ClientVisitRepository
, которое может ссылаться / использовать ClientRepository
и VisitRepository
.
Или достаточно придерживаться, например, CLientRepository
и получать оттуда данные без модели дополнительности и репозитория
Изменение к сообщению:
Вместо Visit
(неправильный пример ) - давайте заменим на Car
, поэтому каждый client
может иметь many cars
. У нас также будет уникальный transactionNumber
, поэтому:
Client (model aggregate) > ClientRepository
Car (model aggregate) > CarRepository
Должен ли я затем создать агрегат, такой как:
public class ClientCar
{
int clientId;
int visitId;
int transactionNumber;
}
и ClientCarRepository
?