원래의 PostgreSQL 스키마 일대일 관계를 통해 당사자를 나타냅니다. party
테이블에는 모든 당사자에 대한 공통 속성이 저장되고 다른 테이블에는 각 당사자 클래스에 대한 특정 정보가 저장 . 이러한 차이점으로 인해 각 클래스에 대해 고유한 필드가 생겨 PostgreSQL과 같은 테이블 형식 스키마가 새 테이블을 생성해야 합니다.
관계형 데이터베이스 의 각 테이블에 대한 매핑을 추가하여 이 정보를 단일 MongoDB party
문서 아래에 포함할 수 있습니다.
당사자에는 다음과 같은 주요 엔터티가 포함됩니다.
당사자: 사람, 조직 및 그룹을 나타냅니다.
당사자 역할: 다음과 같은 다른 객체와 관련하여 당사자의 역할 정의합니다.
커뮤니케이션 ID: 파티의 이메일, 전화번호, 주소 등의 정보를 포함합니다.
다음 이미지는 파티 도메인에 대한 ERD(엔터티 관계 다이어그램)를 보여줍니다.
화면 오른쪽에 Mappings 메뉴가 열립니다.
Mappings from relational tables 옆에 있는 Add을 클릭합니다. Embedded documents 를 클릭하고 Source table 드롭다운 메뉴에서 person 을 선택합니다.
Save and close을 클릭한 후 organization 및 grouping 소스 테이블에 대해 이 프로세스 반복합니다.
Mappings from relational tables 옆에 있는 Add을 클릭합니다. 파티에는 여러 위치 주소가 있을 수 있으므로 Embedded array를 선택합니다. Source table 드롭다운 메뉴에서 party_location_address 을 선택합니다.
All fields 확인란 아래에서 partyIdentifier
필드 선택을 취소하고 Save and close를 클릭합니다.
party_location_address
컬렉션 내에 주소 정보를 포함하려면 Add 을 클릭하고 Embedded documents를 선택합니다. Source table 드롭다운 메뉴에서 location_address 을 선택합니다.
Advanced settings 아래에서 Merge fields into the parent 확인란을 클릭합니다. 이 옵션은 문서 에 필요 이상으로 중첩된 필드가 없도록 합니다.
Save and close를 클릭합니다.
이제 필요한 모든 테이블을 party
컬렉션 에 매핑했으므로 Relational Migrator 의 MongoDB 보기에서 다음 컬렉션을 삭제 수 있습니다.
person
organization
grouping
partyLocationAddress
중요
locationAddress
컬렉션 insurable_object
테이블과 여전히 기존 관계 있으므로 삭제 하지 마세요. 이 테이블은 이후 단계에서 매핑 규칙을 추가합니다.
스키마
파티 도메인을 매핑한 후 정책 도메인을 리팩터링할 수 있습니다. 정책 도메인 리팩터링을 참조하세요.