У меня есть сущность с именем Person
. Он представляет человека, который может делиться информацией с другими людьми. Я также определяю две сущности TelephoneNumber
и Address
, которые представляют некоторую информацию. Каждый человек может предоставить базе данных свой номер телефона и адрес, например TelephoneNumber
и Address
, и предоставленная информация принадлежит только этому лицу. Затем лицо, которому принадлежит определенный информационный номер телефона и адрес, может связать их друг с другом через субъект Association
и может поделиться этой связью с другими лицами.
Я пытаюсь следовать методологии доменного дизайна. Так как номер телефона или адрес принадлежит только одному человеку, идентификационные данные TelephoneNumber
и Address
являются локальными для этой личности Person
. Итак, я думаю, что есть совокупность, которая включает в себя сущности Person
, TelephoneNumber
, Address
и Association
. Корнем совокупности будет сущность Person
. Итак, очевидно, что мне нужен репозиторий для сущности Person
, так как это совокупный корень, и я могу "восстановить" элемент person из хранилища данных, используя этот репозиторий.
Теперь определенный человек хочет добавить номер телефона и адрес и хочет связать их. Итак, предполагая, что человек уже существует в хранилище данных, я получаю Person
с помощью репозитория. Как мне тогда добавить информацию?
Я вижу два подхода. Использование addTelephoneNumber
и addAddress
методов в сущности Person
или использование репозиториев для TelephoneNumber
, Address
и Association
.
Предполагая, что первый подход является правильным, что эти методы должны делать? Как эти методы могут добавить информацию в хранилище данных? Я уточнил, что выбрал направление прохождения для связей между Person и TelephoneNumber / Address, от TelephoneNumber / Address до Person. Таким образом, каждый раз, когда я получаю Персона, я не получаю все его телефоны и адреса.
В этом случае, когда человек хочет добавить телефон, используя метод addTelephoneNumber, что этот метод делает? Куда ставится новый телефон?
PS : номера телефонов и адреса, принадлежащие этому лицу, не обязательно совпадают с номерами этого человека, это просто информация, которую этот человек знает и желает поделиться с другими лицами.