문제

나는 제품과 지불 자 컬렉션을 얻었습니다. 지불 인은 세 가지 다른 방식으로 제품에 대해 지불 할 수 있지만, 지불 자 소득 또는 각각의 지급 자의 가치에 의해 비율을 수동으로 설정할 수 있습니다. 제품 지불 방식은 제품의 열거에 의해 결정됩니다.

내 지속성 계층에서 제품, 지불 자 및 제품 MENALLYPAID, 제품과 지불 자 사이의 다수의 클래스 인 3 개의 클래스, 제품이 수동으로 지불되면 각 지불 인이 지불 해야하는 비율을 지정했습니다.

이것을보기에 어떻게 매핑해야합니까? 나는 새로운 수업을 갖고 싶습니다 (지불 인에 대한 참조, 제품에 대한 참조 및 지불자가 지불 해야하는 정확한 금액으로 구성됨)?

계산은 서비스 계층에서 수행되어야한다고 생각하지만 서비스 계층이 새로운 다수의 클래스가 첨부 된 제품/지불 인의 ViewModel/DTO 버전을 반환해야합니까, 아니면 나중에 처리해야합니까? 나중에 처리 해야하는 경우, 엔티티에 새로운 다수의 클래스 목록이 포함되어 있어야하지만 지속성 계층에서 무시되어야합니까?

도움이 되었습니까?

해결책

DDD는 ER/데이터 모델이 아닌 객체 모델의 설계에 가장 초점을 맞춘 사고 라인을 채택해야한다고 제안 할 수 있습니다. 데이터 모델이 어떻게 보이는지에 대해 생각했지만 (다수의 테이블 등) 객체 모델이 먼저 어떻게 보이는지 고려해야 할 수도 있습니다. 그런 다음 해당 객체 모델이 도메인 (비즈니스 로직, 비즈니스 동작)을 반영하여 해당 객체 모델을 데이터베이스에 매핑 할 수있는 방법에 대해 생각해보십시오.

예를 들어, 지불 수집이있는 제품을 반환하는 것이 더 합리적 일 수 있습니다. 각 지불에는 지불 인자에 대한 링크가 있습니다. 디자인에 따라 지불 자 링크에 액세스하려는 지불 인 정보의 사본이 있거나 해당 링크가 필요한 정보/값으로 전체 지불 인 엔티티를로드하는 방법을 알고있을 수 있습니다. 또한, 각 지불 자 인스턴스에는 제품에 다시 연결되는 지불 모음 (위와 동일한 클래스 유형)이있을 수 있습니다.

이 디자인은 OO 교장을 더 잘 활용하고 관계형 데이터베이스의 방식보다 도메인을 더 잘 설명합니다. 또한, 이러한 객체는 기본 객체 구조가 이미 필요한 것들을 논리적으로 제공하기 때문에 서비스 및 UI 계층에서 처리하기가 더 쉬울 수 있습니다. 즉. 제품에는 지불자가있는 지불금이 있습니다.

나는 DDD가 나 자신을 생각하는 것을 합리적으로 처음 사용합니다. 그리고 DDD라는 용어가 당신을 무서워하기 전에 이것을 살펴보십시오. Evan의 책의 요약 된 버전. 가벼운 읽기이며 무료로 다운로드 할 수 있습니다. 그것은 당신이 찾고 있던 보석을 줄 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top