1

http://i51.tinypic.com/2ueqidt.jpg집합 뿌리 식별

다음 관계 (그림)를 가정합시다. FundCompany에는 기금 및 계정이 있습니다. Accounts와 Funds 사이에 many-to-many 관계 (관계 수준의 다른 속성들도)를 만드는 FundAccount가 있습니다. 마지막으로 계정에는 하나 이상의 수혜자가 있습니다.

FundCompany는 피라미드의 맨 위에있는 집계 루트입니다. FundCompany 없이는 Account 나 Fund가 존재할 수 없습니다. FundAccount는 기금 및 계정 없이는 존재할 수 없습니다. 그것들은 둘 다 골재근이됩니까? 또는 펀드가 FundAccount 엔티티에 대한 작업을 수행하는 데 필요한 유일한 전체 루트입니까? 계정에도 수혜자가 있다는 사실은 계정 없이는 존재할 수 없으며, 또한 계정이 합계 루트라는 신호입니까?

이 다이어그램의 엔티티는 모두 응용 프로그램에서 CRUD 작업과 화면이 필요합니다. 내가 이것을 가져 오는 이유는 가장 자주 모든 UI 화면은 참조하는 행/엔티티의 ID를 저장하기 때문입니다. 예를 들어 사용자가 자금이있는 테이블에서 '세부 사항'을 클릭하면 ID를 통해 자금을 검색해야 할 수 있습니다. 나의 이해는 엔티티가 직접 액세스가 필요하다면 그 자체로 집합 적 루트라는 것입니다. 그러나 이렇게하면 많은 엔티티가 기본적으로 루트를 모으게됩니다.

위의 질문에 대한 답변을 바탕으로이 작업을 적절한 집계 루트의 저장소에 매핑해야합니다.

답변

0

전체 다이어그램은 단일 집계 = 단일 집계 루트 - 최상위 수준은 FundFamily입니다. FundFamily없이 FundAccount이 살 수없는 경우 해당 뿌리를 집계 할 수 없습니다.

+0

예제로 내 모델의 일부만 게시했습니다. 그러나 내 모델을 보면 100 개의 엔티티가있을 수 있습니다. 모두 FundFamily에서 전체 그래프의 소유자로 분기되며 트리는 일부 지점에서 5 단계 깊이 일 수 있습니다. 단순한 "그 밑에있는 모든 것이 그것 없이는 존재할 수 없다"보다는 집합 적 루트를 식별하는 데 더 많은 것이 있어야합니다. 그렇지 않으면 100 개 이상의 엔티티로 구성된 전체 모델이 1 개의 서비스/저장소로 축소됩니까? – e36M3

+0

부분 데이터를 저장할 수 없기 때문에 하나의 촬영에 모든 요소를 ​​정의해야한다면 UI에서 이러한 그래프를 어떻게 정의할까요? –

+0

또한, FundFamily가 전체 그래프의 유일한 집계 루트라고 말하면,이 엔티티 각각에 대해 "get by id"메소드를 작성하는 방법은 무엇입니까? – e36M3