나는 이와 같은 백만 가지 질문이 있음을 알고 있습니다. 죄송 해요. 나는 내 생각이 다르다고 생각하지만 그렇지 않을 수도 있습니다. 나는 DDD를 처음 사용하고 그립을 얻으려고 노력하고 있습니다. 내 도메인의 일부가 이와 같습니다. 위치 1 *이 필드를 필드를 1 * 이벤트 필드 1 * 작업 작업 - 직원집합 루트 디자인 및 크기
지금은 AR의 위치입니다 것으로 보인다. 특정 작업을 원한다면 작업 컬렉션으로 필드 컬렉션을 통해 작업을 탐색해야합니다.
저는 작업과 이벤트를 많이 다루고 있고 말할 필요가없는 곳이 거의 없으므로 상당히 힘들어 보입니다. 위치는 일련의 필드와 해당 엔티티를 분리하는 역할을합니다. 그래서 우리는 위치를 선택하고 필드 목록을 얻을 수 있습니다. 나는 그때 들판을 골랐다. 거기에서 나는 그 중 하나를 편집 할 수 있습니다. 그래서 나는 일련의 일들을 가지고 있으며 나는 그 일의 이드를 가질 수 있도록 하나를 고른다. 그런 다음 위치로 이동하여 자신의 ID를 얻고 AR을 가져 와서 작업으로 되돌아 가야합니다. 또는 오히려 나는 그것을 얻을 수있을 정도로 AR의 이드를 계속 지킬 것이다. 나는 필드의 이드를 계속 지켜야 하는가? 그래서 내가 서버로 돌아간 것은 AR.Id, Field.Id와 Tasks 일 것입니다. 내가보고 싶은 것이 있다면?
두 번째로 직원은 당연히 AR이 될 가능성이있는 엔티티가 될 수 없습니다. AR에있는 엔티티가 AR 모음을 가지고 있어도 괜찮습니까?
그래서 구조화해야 할 방법은 다음과 같습니다. 이 훨씬 쉽게 가장과의 관계를 탐색하기 위해 수정 된 개체를 처리 할 수 있습니다,하지만 그것도 옛날부터 OOP 같은 종류의 느낌과 그 AR은 정말 아무것도 의미하지 않는다
public class Location // is an aggregate Root
{
public IEnumerable<Field> Fields {get;set;} //in real code encapsulated. not here for brevity
}
public class Field // is an Aggregate Root
{
public Location Location {get;set;} //reference to AR
public IEnumerable<Task> Tasks {get;set;}
public IEnumerable<Events> Events {get;set;}
}
public class Task // is an Aggregate Root
{
public Field Field {get;set;} // reference to AR
public IEnumerable<Employee> Employees {get;set;}
public TaskType TaskType {get;set;} // probably Value Object
public IEnumerable<Equipment> Equipment {get;set;} // maybe Entity or AR
}
.
다시 한번 DDD를 처음 접했고 온 전성 검사를 위해이 프로그램을 실행할 사람이 없습니다. 이 경계선이 그려지는 방법을 파악하는 데 도움을주십시오. 첫 번째 방법 인 경우 엔티티를 처리하고 AR.id, ParentParent.Id, ParentId 및 마지막으로 객체를 처리하는 쉬운 방법이 있습니까? 관심은 내가 기사의이 위대한 시리즈를 발견 인터넷 검색을 좀 더시
이것은 모두 매우 구조적입니다. 집계는 트랜잭션 일관성 경계이며 트래버스하는 구조적 그래프가 아닙니다. –