2013-07-29 3 views
3

현재 게시 제한 컨텍스트에서 작업 중입니다. 이 컨텍스트의 주 플레이어는 제품목록입니다.DDD : 중첩 된 집합과 다 대다 관계

제품 : 여러 마켓에 등록 할 수 있습니다. 하나 제품 많은 목록.

목록 : 일부 시장에서는 변형 목록을 지원하기 때문에 많은 제품을 보유 할 수 있습니다. 하나 목록 많은 제품.

위의 내용을 바탕으로 과 제품 사이에 다 대다 관계가 있습니다.

둘 모두에 대해 집계를 만들었습니다. 목록을 포함하는 제품 집합과 제품을 포함하는 목록 집합.

목록을 두 집계에 모두 정의했거나 두 집계에 한 번 사용하도록 Listing을 정의해야합니까? 제품 AR이 리스팅을 만드는 규칙을 적용하는 팩토리 메소드가 (예 : 같은 시장에서 피할 중복 된 목록 등을 우리가 목록에 대한 재고의 수량이 있는지 확인) 때문에

먼저 목록은

제품 집계 내 것 둘째 목록은 게시 시점에 많은 제품의 정보가 포함될 수있는 집계 루트가됩니다. 이 방법으로 다른 시장 (예 : Ebay 및 Amazon)에서 제공하는 스키마 정의에 매핑하는 방법을 만들 수 있습니다. 또한 동일한 제품 내의 목록에서 독립적으로 목록을 유지할 수 있기를 원합니다.

두 집계가 중복 정의와 너무 겹치지 않습니까? 이것은 하나의 제한된 맥락 안에서 기대 되는가?

또한 어떻게하면 목록의 복제 표현을 서로 동기화 상태로 유지할 수 있습니까?

+0

당신이에 대한 더 많은 정보를 공유 할 수 있을까요? 1. 첫 번째 목록의 책임은 제품이 게시 될 예정인 마켓을 기록하는 객체입니까? 2. "다른 방법으로 제공되는 스키마 정의에 매핑하기 위해 Listing에 메소드를 생성 할 수있는 방법"은 두 번째 Listing을 의미합니까? 제품을 Amazon의 제품 스키마로 변환 하시겠습니까? – Hippoom

+0

"일반 목록"과 구별되는 "변주 목록"을 모델링 할 수 있습니까? 그들은 별개의 것들일지도 모르는 것처럼 들리니? 집합체 또는 집합체가 무엇인지에 관해서는 트랜잭션 일관성 경계를 찾으십시오. 이것은 무엇을 결정하는 데 도움이되는 시작점 일 수 있습니다. – stephenl

+0

제품 집합 내의 첫 번째 목록 정의는 게시 된 시장 (가격, 제목, 수량)을 기록하는 개체입니다. 두 번째 리스팅 정의는 경우에 상관없이 Amazon Product Schema 및 Ebay 스키마에 자신을 매핑하는 방법을 알고있는 고유 한 AR입니다. – berkeleyjuan

답변

1

제품 AR이 리스팅을 만드는 규칙을 적용하는 팩토리 메소드가 있기 때문에 첫 번째 목록은 제품 집계 내 것 (예 : 같은 시장에서 피할 중복 된 목록 등을 우리는 목록에 대한 재고의 수량이 있는지 확인)

제품 자체 재고, 자체 마켓 플레이스, 자체 목록 및 자체 목록을 알고 있어야합니까? 이것은 엔티티에 대해 너무 많은 책임입니다! ListingFactory가이 정보를 보유하고있는 다른 서비스 나 리파지토리와 함께 주식과 마켓 플레이스를 확인하게 할 것을 제안한다.

목록을 두 집계에 모두 정의 할 수 있습니까? 아니면 두 집계에 한 번만 사용할 수있는 목록을 정의해야합니까? 또한 목록의 복제 표현을 서로 어떻게 동기화 할 수 있습니까?

단일 목록을 유지 관리하여 제품과 목록 간의 순환 종속성을 피하고 (유사한 얽힘에 대해이 질문을보십시오 : How to design many-to-many relationships on deletion?). 목록이있는 장바구니가 있어야한다고 생각합니다. 제안 된 ListingFactory에서와 같이 제품을 기반으로하는 모든 목록에 액세스해야하는 경우 모든 목록을 가져 오는 마켓 플레이스 서비스 또는 저장소를 설정할 수 있습니다.

두 집계가 중복 정의와 너무 겹치나요?

제품의 당신의 정의는 "복수의 마켓 플레이스에 나열 할 수 있습니다"이 정의를 읽은 후 문제가 여전히 남아 있기 때문에, 매우 만족 정의되지 않습니다

: 그 나열 할 수 있습니다 그 다음 무엇입니까? 그것의 중핵에 제품은 명부의 지식없이 정의 될 수있다, 그러나이 문맥 안에 관계를 명확하게 지명하는 것이 아마 아직도 좋을. (제품) 목록은 제품이 없으면 정의 될 수 없지만 제품은 목록없이 정의 될 수 있습니다. 그것들은 중복 될 필요가 없습니다. 귀하의 제품이 완전히 목록에 모르기는하지만 문맥 내의 목록과 관련 될 것으로 기대합니다.

제한된 컨텍스트 내에서 예상 되나요?

모든 정의는 중복 등 복제, 동의어, 확장, 근처의 유사성, 상호 참조, 관계의 다른 유형을 기대할 수있는 상황에서, 그래서 그것은 조사의 의식이 꽤 필요로 서로에 구축 1 차와 2 차를 구분하기 위해서, 주제와 대상의 술어, 막의 핵. 그러나,이 그것을 너무 재미 :) 단어의

정의를 만드는 것 또한 : "문장을 형성하기 위해 음성 또는 서면의 단일 별개의 의미 요소 (때로는 단독 또는) 다른 사람과 사용을 ..."

문장

정의 : "일반적으로 성명, 질문을 전달, 제목과 조건을 포함하는, 그 자체로 완료 단어의 세트, 느낌표 .."