2014-12-30 9 views
0

CQRS 원칙을 사용하여 애플리케이션을 읽기 및 쓰기로 분할하려는 경우 "동적"읽기 모델 시나리오의 상황을 어떻게 처리합니까? 예 : 몇 가지 읽기 속성 (ID, 제목, 슬러그 등)로 구성된 제품이 있지만 사용자에게 표시하려면 도메인 서비스 (방문자 국가 및 통화를 전달하는)로 계산 된 가격을 전달해야합니다. 나는 그가 가격을 자주 바꿀 때마다 사용자가 자신의 통화를 자유롭게 변경할 수 있기 때문에이 가격을 데이터베이스에 저장할 수 없다. 따라서 최종 제품 뷰 모델은 기본적으로 원시 SQL 열 (id, title, slug)과 계산 된 가격의 합성이어야합니다. 데이터베이스에서 가져온 것과 동일한 뷰 모델을 사용하고 컨텐츠 풍부 패턴을 사용해야합니까, 아니면 컴포지트에 대한 새로운 뷰 모델을 만들어야합니까?동적 뷰 모델

답변

0

제품 가격을 변경하면 COMMAND이므로 데이터베이스에 저장 한 가격을 업데이트해야합니다. 그러면 QUERY가 표시됩니다.

CQRS의 본질은 쿼리가 그런 논리가되지 않는다는 것입니다.

통화 변환의 경우 사용자가 언제든지 통화를 변경할 수 있다고 말하기 때문에 전체 환율 목록을 쿼리하고 클라이언트 측에서 직접 계산해야합니다. 또는 기본 가격을 쿼리 한 다음 현재 요율을 쿼리 할 수 ​​있습니다. 사용자가 통화를 변경하면 요금을 다시 쿼리하지만 동일한 기본 가격을 유지합니다.