첫 번째 실제 CQRS 설정부터 시작합니다. 나는 사이트의 사용자 등록 부분을 구축하고 있는데, 도메인과 쓰기면은 표준 DDD "스타일"에서 나오는 친숙한 부분입니다. 읽기 모델의 경우 AccountCreatedEvent를 처리하는 비정규 화기가 있습니다.CQRS 1st NF 모델 읽기 - 극단적으로 복제를 허용합니까?
현재 구현중인 기능에 대해서만 사용자 등록에 관심이 있습니다. 이메일 주소/사용자 이름의 고유성 검사가 필요합니다.
그래서이 목적을 위해 특별히 읽기 모델을 디자인한다고 가정 해보십시오. 지금 관심이있는 데이터 부분 만 보유하고있는 AccountRegistrationReadModel : Username, Email, HashedPassword
나중에 사용자 프로필 페이지를 빌드하기 시작할 때 AccountProfileReadModel이 필요합니다.
이 읽기 모델은 동일한 속성의 일부를 공유하고 AccountRegistrationReadModel과 AccountProfileReadModel가 듣기에 관심이 시점에서 아마도 예를 들어, AccountUsernameChangedEvent
을 변경 프로파일 데이터에 관련된 이벤트를 처리하는 또 다른 denormalizer이있을 것이다 AccountUsernameChangedEvent 메시지.
내 질문은 :이 접근법이 맞습니까? 기능마다 읽기 모델을 유지해야합니까? 또는 데이터를 표준화하고 데이터를 재사용하려고 할 때 가능한 경우 중복을 제한해야합니까?
+1 - 정상화로 인해 취성이 생길 수 있습니다 ... 분명히 동의합니다. –