이 기능을 사용하려면 Advanced mode도 활성화되어 있어야 합니다(설정 오른쪽 하단의 토글).
다대다 관계를 사용할 때
관계의 양쪽 모두에 여러 연결이 있을 수 있을 때 다대다를 사용하세요:| 관계 | 예시 |
|---|---|
| 사람 ↔ 프로젝트 | 한 사람은 여러 프로젝트에서 작업하고, 하나의 프로젝트에는 여러 팀원이 있습니다. |
| 회사 ↔ 태그 | 하나의 회사에는 여러 태그가 있을 수 있으며, 하나의 태그는 여러 회사에 적용될 수 있습니다. |
| 제품 ↔ 주문 | 하나의 제품은 여러 주문에 포함될 수 있으며, 하나의 주문에는 여러 제품이 포함됩니다. |
작동 방식
Twenty는 다대다 관계에 정션 오브젝트 패턴을 사용합니다. 정션 오브젝트는 두 객체 사이에 위치하여 연결을 보관합니다:- 사람에 대한 관계(다대일)
- 프로젝트에 대한 관계(다대일)
사전 준비
- Lab에서 Junction Relations 활성화: Settings → Updates → Lab로 이동하여 Junction Relations를 활성화하세요
- Advanced mode 활성화: 설정 사이드바 오른쪽 하단에서 Advanced mode를 켭니다
- 데이터 모델을 계획하세요:
- 어떤 두 오브젝트를 연결하나요?
- 정션 오브젝트의 이름은 무엇으로 할까요?
1단계: 정션 오브젝트 만들기
먼저, 연결을 보관할 중간 오브젝트를 만드세요.- 설정 → 데이터 모델로 이동
- + 새 객체를 클릭합니다
- 설명을 담은 이름을 지정하세요(예: “Project Assignment”, “Team Member”, “Product Order”)
- 저장을 클릭합니다
2단계: 정션 오브젝트에서 관계 생성
연결하려는 두 오브젝트를 대상으로 정션 오브젝트에서 관계 필드를 추가하세요.첫 번째 관계(정션 → 오브젝트 A)
- Settings → Data Model에서 정션 오브젝트를 선택하세요
- + 필드 추가를 클릭합니다
- 필드 유형으로 Relation을 선택하세요
- 첫 번째 오브젝트를 선택하세요(예: “People”)
- 관계 유형을 Many-to-One으로 설정하세요(여러 할당이 한 사람에 연결될 수 있음)
- 필드 이름 지정:
- 정션의 필드: 예: “Person”
- People의 필드: 예: “Project Assignments”
- 저장을 클릭합니다
두 번째 관계(정션 → 오브젝트 B)
- 정션 오브젝트에서 + Add Field를 클릭하세요
- 필드 유형으로 Relation을 선택하세요
- 두 번째 오브젝트를 선택하세요(예: “Projects”)
- 관계 유형을 Many-to-One으로 설정하세요
- 필드 이름 지정:
- 정션의 필드: 예: “Project”
- Projects의 필드: 예: “Team Members”
- 저장을 클릭합니다
3단계: 정션 관계 표시 구성
이제 중간 정션 오브젝트를 건너뛰고 연결된 레코드를 직접 표시하도록 소스 오브젝트를 구성하세요.- 설정 → 데이터 모델로 이동
- 첫 번째 오브젝트를 선택하세요(예: “People”)
- 정션 오브젝트를 가리키는 관계 필드(예: “Project Assignments”)를 찾으세요
- 클릭하여 필드를 편집하세요
- **“This is a relation to a Junction Object”**를 활성화하세요
- Target relation을 선택하세요(예: “Project” — 반대편을 가리키는 정션의 필드)
- 저장을 클릭합니다
- Data Model에서 “Projects”를 선택하세요
- “Team Members” 관계 필드를 편집하세요
- 정션 토글을 활성화하세요
- 대상 관계로 “Person”을 선택하세요
- 저장
결과
구성 후:- Person 레코드에서는 “Project Assignments” 필드가 할당 레코드가 아니라 Projects를 직접 표시합니다
- Project 레코드에서는 “Team Members” 필드가 People를 직접 표시합니다
예: People ↔ Projects
전체 단계별 안내는 다음과 같습니다:정션 오브젝트 만들기
- 이름: Project Assignment
- 설명: “사람을 작업 중인 프로젝트에 연결합니다”
관계 추가
-
Project Assignment → People
- 유형: Many-to-One
- Assignment의 필드: “Person”
- People의 필드: “Project Assignments”
-
Project Assignment → Projects
- 유형: Many-to-One
- Assignment의 필드: “Project”
- Projects의 필드: “Team Members”
정션 표시 구성
-
People 오브젝트에서:
- “Project Assignments” 필드를 편집하세요
- 정션 토글을 활성화하세요
- 대상: “Project”
-
Projects 오브젝트에서:
- “Team Members” 필드를 편집하세요
- 정션 토글을 활성화하세요
- 대상: “Person”
사용하기
- Person 레코드를 열면 → 해당 Projects를 바로 확인할 수 있습니다
- Project 레코드를 열면 → 팀원을 바로 확인할 수 있습니다
- 양쪽 어디에서든 새 연결을 만들 수 있습니다
연결에 추가 데이터 추가하기
정션 오브젝트는 실제 오브젝트이므로, 관계에 대한 정보를 저장할 사용자 정의 필드를 추가할 수 있습니다:- 역할: “Developer”, “Designer”, “Manager”
- 시작일: 프로젝트에 참여한 시점
- 할당 시간: 이 프로젝트의 주간 시간
제한 사항
- CSV 가져오기/내보내기: 다대다 관계를 직접 가져오기는 지원되지 않습니다. 대신 정션 오브젝트로 레코드를 가져오세요.
- 필터: 다대다 관계로 필터링하는 경우 옵션이 제한될 수 있습니다.
관련 항목
- 관계 필드 — 관계 유형 설명
- 사용자 정의 오브젝트 만들기 — 오브젝트 생성 방법
- 관계 필드 만들기 — 기본 관계 설정