Каждый репозиторий должен содержать только агрегаты одного типа.
Вы должны проектировать свои агрегаты на основе ограниченного контекста и бизнес-инвариантов, а не таблиц и баз данных.
Один совет при разработкеАгрегаты в том, что они являются самой большой транзакционной границей.То есть все, что происходит внутри агрегата, строго согласовано.Кроме того, это означает, что транзакция не должна охватывать несколько агрегатов.Если вам это нужно, то это означает, что вы неправильно разработали свои агрегаты.
Из того, что я видел до сих пор в wild и, что более важно, из того, что я сейчас из вашего бизнеса(почти ничего!), я бы сказал, что Product
и ProductCategory
- это отдельные агрегаты, поэтому они должны оставаться в разных хранилищах.Но чтобы дать вам четкий ответ, мне нужно знать, каковы бизнес-инварианты.