포럼이 포함 된 도메인 모델이 있습니다.도메인 기반 디자인 - 저장소 및 집계 루트
나는 포럼, 스레드 및 게시물 엔티티가 있습니다.
포럼은 독립 실행 형 엔터티입니다. 즉, 스레드는 집계의 일부로 포함되지 않습니다. 이것은 스레드가 특정 포럼 (스레드를 다른 포럼으로 이동할 수 있음)에 소유되어 있지 않기 때문입니다.
스레드 집계의 일부로 게시물을 모델링해야할지 모르겠다. 게시물은 스레드 없이는 존재할 수 없습니다. 스레드를 삭제하고 게시물을 스레드 집계의 일부로 지정하는 게시물을 삭제해야합니다.
유일한 점은 게시물을 편집 할 때 독립 실행 형으로 가져올 수 있다는 것입니다. 즉, ID로 게시물을 수정할 때입니다.
그래서 게시물 리포지토리가 스레드를 가져 오지 않고 스레드 엔터티의 메서드를 통해 올바른 게시물을 가져 오는 대신이 목적에 적합하다고 생각합니다.
별도의 게시물 저장소가있는 유일한 점은 게시물 (예 : addPost (Post))을 추가 할 때 스레드 ID가 게시 엔티티에 할당되었는지 확인해야한다는 것입니다. 합계를 사용하면 스레드 엔티티에 addPost 메소드 만있을 것입니다.
제한된 컨텍스트를 생각해야합니까? 게시 엔티티 및 리포지토리가있을 수 있으며 게시 엔티티도 포함하는 스레드 집계가 있습니까?
스레드/게시물 집계에 참여하지 않았다면 스레드를 삭제할 때 게시 삭제를 어떻게 처리합니까? thread 저장소에서 deleteThread (Thread)를 호출하고 post 저장소에서 deletePostsByThreadId (id)를 호출하는 서비스를 생성해야합니까?
여기에 DDD 방식이란 무엇입니까?
나는 이것이 최선의 해결책이 아닐 것이라고 생각하지만 사람들이 게시판과 쇼핑 시스템에 대한 예를 항상 보여주고 있다고 생각한다. –
+1, 이것이 여기에 해당 될지 확실하지 않습니다. (도메인에 대한 충분한 정보가 없다고 생각합니다.) 그리고이 제기에 관한 일반적인 질문은 여전히 흥미 롭습니다. 그러나 DDD를 전달하는 것은 고려할만한 가치가 있습니다. . –
DDD를 정확히 통과시키는 이유는 무엇입니까? 애플리케이션이 DDD에 '맞지 않는'라인이 있습니까? –