2013-06-04 3 views
1

우리는 간단한 있습니다다른 루트가 아닌 집계에서 비 루트 집계에 대한 참조를 유지하지 않으려면 어떻게해야하나요? 많은 DDD의 예에서

주문 (집계 루트 [AR]) 및 OrderLine에 (총 회원 [AM]) +

송장 (집계 루트

[AR]) 및 InvoiceLine (총계 회원 [AM])

이 예에서는 주문에 따라 송장을 발행하므로 AR (인보이스)에서 다른 주문 (주문)으로 직접 참조됩니다.

하지만, 내 경우에는 상황이 더 복잡 :

우리는 다른 주문에서 많은 OrderLines에 송장을 실행합니다.

그래서 하나의 송장에, 우리는이 : InvoiceLine # 1 참조 OrderLine에 # 1 주문 번호 1에서

하고, 대한 (다른 주문 번호 2에서) OrderLine에 # 2 또 다른 InvoiceLine # 2 참조 예를 들어 Order # 1의 OrderLine # 2를 참조하는 InvoiceLine은 없습니다.

이 케이스를 해결하는 방법은 무엇입니까?

정확하지 않은 InvoiceLine의 OrderLine에 대한 참조를 보유하고있는 것처럼 보입니다. 하지만 다른 아이디어가 없습니다./

미리 제안 해 주셔서 감사합니다.

답변

0

실제 AR 인스턴스 참조를 한 AR에서 다른 AR로 보류해서는 안됩니다. 모든 엔터티 참조는 일시적이어야합니다.

식별자 만 저장해야합니다.

해당 InvoiceLine 항목에 주문 ID 및 주문 번호를 저장할 수 있습니다. 가치 객체 일 수도 있습니다.

Invoice AR을 저장소에서 가져올 때 개체 검색 문제가 발생하지 않습니다.

+0

아, 당신 말이 맞아요, 수치 스럽군요 ... 고마워요! – drep

관련 문제