메인 콘텐츠로 건너뛰기
다대다 관계를 사용하면 양쪽에서 여러 레코드를 연결할 수 있습니다. 예: 여러 사람은 여러 프로젝트에서 작업할 수 있으며, 각 프로젝트에는 많은 사람이 포함될 수 있습니다.
Lab 기능: 정션 관계는 현재 Lab에서 제공됩니다. 이 가이드를 진행하기 전에 Settings → Updates → Lab에서 이를 활성화하세요.
이 기능을 사용하려면 Advanced mode도 활성화되어 있어야 합니다(설정 오른쪽 하단의 토글).

다대다 관계를 사용할 때

관계의 양쪽 모두에 여러 연결이 있을 수 있을 때 다대다를 사용하세요:
관계예시
사람 ↔ 프로젝트한 사람은 여러 프로젝트에서 작업하고, 하나의 프로젝트에는 여러 팀원이 있습니다.
회사 ↔ 태그하나의 회사에는 여러 태그가 있을 수 있으며, 하나의 태그는 여러 회사에 적용될 수 있습니다.
제품 ↔ 주문하나의 제품은 여러 주문에 포함될 수 있으며, 하나의 주문에는 여러 제품이 포함됩니다.

작동 방식

Twenty는 다대다 관계에 정션 오브젝트 패턴을 사용합니다. 정션 오브젝트는 두 객체 사이에 위치하여 연결을 보관합니다:
People ←→ Project Assignments ←→ Projects
Project Assignments 오브젝트(정션)에는 다음이 있습니다:
  • 사람에 대한 관계(다대일)
  • 프로젝트에 대한 관계(다대일)
정션 관계 토글을 활성화하면, Twenty는 중간 정션 레코드를 표시하지 않고 연결된 레코드를 직접 표시합니다.

사전 준비

  1. Lab에서 Junction Relations 활성화: Settings → Updates → Lab로 이동하여 Junction Relations를 활성화하세요
  2. Advanced mode 활성화: 설정 사이드바 오른쪽 하단에서 Advanced mode를 켭니다
  3. 데이터 모델을 계획하세요:
    • 어떤 두 오브젝트를 연결하나요?
    • 정션 오브젝트의 이름은 무엇으로 할까요?

1단계: 정션 오브젝트 만들기

먼저, 연결을 보관할 중간 오브젝트를 만드세요.
  1. 설정 → 데이터 모델로 이동
  2. + 새 객체를 클릭합니다
  3. 설명을 담은 이름을 지정하세요(예: “Project Assignment”, “Team Member”, “Product Order”)
  4. 저장을 클릭합니다
명명 규칙: “Project Assignment” 또는 “Team Membership”처럼 관계를 설명하는 이름을 사용하세요. 이렇게 하면 데이터 모델을 더 쉽게 이해할 수 있습니다.

2단계: 정션 오브젝트에서 관계 생성

연결하려는 두 오브젝트를 대상으로 정션 오브젝트에서 관계 필드를 추가하세요.

첫 번째 관계(정션 → 오브젝트 A)

  1. Settings → Data Model에서 정션 오브젝트를 선택하세요
  2. + 필드 추가를 클릭합니다
  3. 필드 유형으로 Relation을 선택하세요
  4. 첫 번째 오브젝트를 선택하세요(예: “People”)
  5. 관계 유형을 Many-to-One으로 설정하세요(여러 할당이 한 사람에 연결될 수 있음)
  6. 필드 이름 지정:
    • 정션의 필드: 예: “Person”
    • People의 필드: 예: “Project Assignments”
  7. 저장을 클릭합니다

두 번째 관계(정션 → 오브젝트 B)

  1. 정션 오브젝트에서 + Add Field를 클릭하세요
  2. 필드 유형으로 Relation을 선택하세요
  3. 두 번째 오브젝트를 선택하세요(예: “Projects”)
  4. 관계 유형을 Many-to-One으로 설정하세요
  5. 필드 이름 지정:
    • 정션의 필드: 예: “Project”
    • Projects의 필드: 예: “Team Members”
  6. 저장을 클릭합니다

3단계: 정션 관계 표시 구성

이제 중간 정션 오브젝트를 건너뛰고 연결된 레코드를 직접 표시하도록 소스 오브젝트를 구성하세요.
  1. 설정 → 데이터 모델로 이동
  2. 첫 번째 오브젝트를 선택하세요(예: “People”)
  3. 정션 오브젝트를 가리키는 관계 필드(예: “Project Assignments”)를 찾으세요
  4. 클릭하여 필드를 편집하세요
  5. **“This is a relation to a Junction Object”**를 활성화하세요
  6. Target relation을 선택하세요(예: “Project” — 반대편을 가리키는 정션의 필드)
  7. 저장을 클릭합니다
다른 오브젝트에 대해서도 반복하세요:
  1. Data Model에서 “Projects”를 선택하세요
  2. “Team Members” 관계 필드를 편집하세요
  3. 정션 토글을 활성화하세요
  4. 대상 관계로 “Person”을 선택하세요
  5. 저장

결과

구성 후:
  • Person 레코드에서는 “Project Assignments” 필드가 할당 레코드가 아니라 Projects를 직접 표시합니다
  • Project 레코드에서는 “Team Members” 필드가 People를 직접 표시합니다
정션 오브젝트는 여전히 존재하며 연결을 저장하지만, UI는 더 깔끔한 다대다 보기를 제공합니다.

예: People ↔ Projects

전체 단계별 안내는 다음과 같습니다:

정션 오브젝트 만들기

  • 이름: Project Assignment
  • 설명: “사람을 작업 중인 프로젝트에 연결합니다”

관계 추가

  1. Project Assignment → People
    • 유형: Many-to-One
    • Assignment의 필드: “Person”
    • People의 필드: “Project Assignments”
  2. Project Assignment → Projects
    • 유형: Many-to-One
    • Assignment의 필드: “Project”
    • Projects의 필드: “Team Members”

정션 표시 구성

  1. People 오브젝트에서:
    • “Project Assignments” 필드를 편집하세요
    • 정션 토글을 활성화하세요
    • 대상: “Project”
  2. Projects 오브젝트에서:
    • “Team Members” 필드를 편집하세요
    • 정션 토글을 활성화하세요
    • 대상: “Person”

사용하기

  • Person 레코드를 열면 → 해당 Projects를 바로 확인할 수 있습니다
  • Project 레코드를 열면 → 팀원을 바로 확인할 수 있습니다
  • 양쪽 어디에서든 새 연결을 만들 수 있습니다

연결에 추가 데이터 추가하기

정션 오브젝트는 실제 오브젝트이므로, 관계에 대한 정보를 저장할 사용자 정의 필드를 추가할 수 있습니다:
  • 역할: “Developer”, “Designer”, “Manager”
  • 시작일: 프로젝트에 참여한 시점
  • 할당 시간: 이 프로젝트의 주간 시간
이 데이터를 확인하려면 정션 오브젝트로 직접 이동하거나 API를 통해 조회하세요.

제한 사항

  • CSV 가져오기/내보내기: 다대다 관계를 직접 가져오기는 지원되지 않습니다. 대신 정션 오브젝트로 레코드를 가져오세요.
  • 필터: 다대다 관계로 필터링하는 경우 옵션이 제한될 수 있습니다.

관련 항목