# 다대다 관계 작성하기 다대다 관계는 하나의 엔티티가 다른 엔티티와 일대다 관계를 가지고, 그 반대도 마찬가지인 경우에 발생합니다. 예를 들어, `Author`(저자)는 여러 `Books`(책)을 쓸 수 있으며, `Book`은 여러 `Authors`에 의해 작성될 수 있습니다. 이러한 유형의 관계는 **N대M** 관계로도 알려져 있습니다. 이러한 관계는 **접합 엔티티**(junction entity)라고 불리는 제3의 엔티티를 추가하여 해결합니다. 이 엔티티에는 최소 2개의 외래 키가 필요하며, 관계를 맺는 각 엔티티에 대한 참조가 포함됩니다. 필요에 따라 다른 속성도 추가할 수 있습니다(예시 참조). 다대다 관계를 생성하려면 다음 단계를 따르세요: 1. [관계 엔티티를 생성합니다](https://success.outsystems.com/ja-jp/documentation/11/building_apps/data_management/data_modeling/create_an_entity_to_persist_data/). 2. 속성을 추가하고, 데이터 유형을 첫 번째 엔티티의 식별자로 설정합니다. 3. 다른 속성을 추가하고, 데이터 유형을 두 번째 엔티티의 식별자로 설정합니다. 엔티티에 고유한 레코드를 보장하고 싶은 경우(예를 들어, `Book`이 하나의 `Publisher`만 가질 수 있는 등), 두 외래 키에 [유니크 인덱스](https://success.outsystems.com/ja-jp/documentation/11/building_apps/data_management/data_modeling/create_an_entity_index/)를 추가합니다. 이 주제에 관한 [온라인 트레이닝 비디오](https://learn.outsystems.com/training/journeys/modeling-data-relationships-642/many-to-many-relationship/o11/448)를 확인하세요: ## 예시 GoOut이라는 모바일 애플리케이션이 있다고 가정해 봅시다. 여기서는 최종 사용자가 레스토랑이나 호텔과 같은 장소를 찾고 리뷰할 수 있습니다. 최종 사용자는 많은 장소를 리뷰할 수 있고, 한 장소는 많은 최종 사용자로부터 리뷰를 받을 수 있습니다. 즉, 다대다 관계입니다. 이 두 엔티티를 `Review`와 `Place`라고 부릅시다. 두 개의 외래 키 외에도, 리뷰에는 다른 속성들도 있습니다: 평가, 코멘트, 제출일입니다. `Review` 엔티티를 생성해 봅시다: 1. 데이터 탭에서 GoOutWebDataModel 엔티티 다이어그램을 엽니다. 2. 사용자 시스템 엔티티와 `Place` 엔티티를 다이어그램으로 드래그합니다. 3. 다이어그램 캔버스를 우클릭하고 "엔티티 추가"를 선택합니다. 4. 엔티티 이름을 `Review`로 지정합니다. 5. `User.Id` 속성을 `Review`로 드래그합니다. 6. `Place.Id` 속성을 `Review`로 드래그합니다. 7. 나머지 속성을 추가합니다: - `Classification`, Integer 유형 - `Comments`, Text 유형 - `SubmittedOn`, Date 유형 ![GoOut 모바일 애플리케이션의 데이터 모델에서 Review 엔티티가 User 엔티티와 Place 엔티티에 연결된 다대다 관계를 보여주는 그림](https://success.outsystems.com/TK_Resource/857bf96f-3b4e-419b-a394-522160706ec8 "다대다 관계 그림")