본문으로 건너뛰기

폼 간 관계

폼 간 관계를 만드는 방법​

폼 간 관계를 만드는 것은 정보를 지능적으로 구성하기 위한 필수 기능입니다. 폼을 연결하면 데이터를 중복할 필요가 없어지고, 애플리케이션이 일관성 있고 확장 가능하며 유지 관리하기 쉬워집니다.

Netuno의 큰 장점 중 하나는 데이터 모델 다이어그램을 자동으로 생성할 수 있다는 것입니다.

관계는 서로 다른 테이블의 데이터가 어떻게 상호작용하는지 정의합니다. 이 연결은 사용자 인터페이스(UI)에 직접 반영되어, 한 폼의 필드가 다른 폼의 정보를 자동으로 가져올 수 있게 합니다.

간단한 다이어그램: 작은 모듈의 초기 로직을 검증하는 데 적합합니다.

간단한 다이어그램 템플릿

복잡한 다이어그램: 여러 종속성과 데이터 흐름을 매핑하여 대규모 애플리케이션에서 도구의 견고함을 보여줍니다.

복잡한 다이어그램 템플릿

Select 유형의 관계형 필드 생성​

Select 필드는 두 폼 간의 관계를 생성합니다. 값을 직접 입력하는 대신 드롭다운 목록에서 값을 선택할 수 있습니다. 이 목록은 다른 폼에 이미 존재하는 데이터로 채워집니다.

차량과 색상 폼을 예로 사용하겠습니다.

언제 사용하나요? "다대일"(N-1) 관계가 있을 때 Select를 사용합니다.

예: 많은 차량이 하나의 색상을 가질 수 있습니다. 매번 "파란색"을 입력하는 대신, 이미 등록된 색상 목록에서 "파란색"을 선택합니다.

  • 대상 폼: 차량 (Select 필드를 만들 폼입니다).
  • 원본 폼: 색상 (색상 목록 데이터를 가져올 폼입니다).

요구 사항​

시작하기 전에 다음을 확인하세요:

  • 두 폼(차량과 색상)이 모두 Netuno에 이미 생성되어 있어야 합니다. 자세한 내용은 폼 생성 가이드를 참고하세요.

  • 원본 폼(색상)에 이미 몇 개의 레코드가 등록되어 있어야 합니다. (예: "파란색", "빨간색", "은색"). 자세한 내용은 필드 생성 가이드를 참고하세요.

Select 생성 및 구성​

차량 폼에 select 필드 유형을 추가하여 색상 폼의 데이터를 "가져올" 수 있게 합니다.

Select 필드 생성 및 구성

1 - 대상 폼에 접근​

  • Backoffice에서 필드 관리로 이동하여 차량 폼 편집을 엽니다.

2 - 새 필드 생성​

  • "새 필드 만들기"를 클릭합니다.

3 - 필드 제목과 컬럼 이름 정의​

  • 필드 제목: 사용자에게 표시될 친숙한 이름을 지정합니다. 예: 차량 색상.
  • 컬럼 이름: 데이터베이스에서 사용되는 필드의 기술적 이름입니다.

모범 사례: 관계형 필드를 만들 때는 항상 컬럼 이름에 _id 접미사를 사용하세요. 이렇게 하면 해당 컬럼이 "파란색"이라는 텍스트가 아니라 색상 폼의 "파란색" 레코드에 대한 참조 ID를 저장한다는 것이 명확해집니다. 예: 차량_색상_id.

4 - 데이터 유형 선택​

  • 유형 필드에서 목록의 select - select 옵션을 선택합니다.

5 - 링크(관계) 구성​

링크 구성

  • _select_를 선택하면 링크라는 새 필드가 표시됩니다.
  • 구성 버튼을 클릭합니다.
  • 모든 폼이 나열된 모달이 열립니다. 이때 원본 폼을 선택합니다.
  • 나열하려는 데이터가 포함된 폼을 선택합니다. 이 예에서는 색상 - 색상을 클릭합니다.
  • 선택한 후 모달에서 닫기 버튼을 클릭합니다.

6 - 변경 사항 저장​

  • 필드 관리에서 저장 버튼을 클릭하여 모든 설정을 적용합니다.

결과​

완료되었습니다! 이제 "보기" 모드에서 차량 폼에 레코드를 추가하거나 편집할 때, "차량 색상" 필드는 색상 폼에 등록된 모든 색상을 보여주는 드롭다운 목록이 됩니다.

Multiselect 유형의 관계형 필드 생성​

Multiselect 필드는 "다대다"(N-M) 관계를 생성합니다. 하나의 필드에서 목록의 여러 항목을 선택할 수 있습니다.

사람, 역할, 사람-역할 폼을 예로 사용하겠습니다.

언제 사용하나요? 하나의 레코드가 여러 다른 레코드와 연결될 수 있고 그 반대도 가능할 때 Multiselect를 사용합니다. 예: 많은 사람이 많은 역할을 가질 수 있습니다.

  • 한 사람(예: "지민")은 "관리자"와 "매니저" 역할을 가질 수 있습니다.
  • "매니저" 역할은 여러 사람(예: "지민", "민수", "도윤")과 연결될 수 있습니다.

이것이 작동하려면 세 개의 폼이 필요합니다:

  • "부모" 폼(사람): 사용자에게 multiselect 필드가 표시되는 폼입니다.
  • "원본" 폼(역할): 목록 옵션을 가져오는 폼입니다(예: "관리자", "매니저").
  • "연결" 폼(사람-역할): 사람과 역할 간의 연결을 저장하는 "브리지" 폼입니다.

요구 사항​

시작하기 전에 다음을 확인하세요:

  • "부모" 폼(사람)이 이미 생성되어 있고 몇 개의 레코드가 있어야 합니다(예: "지민", "민수", "서준").
  • "원본" 폼(역할)이 이미 생성되어 있고 몇 개의 레코드가 있어야 합니다(예: "관리자", "매니저", "컨설턴트").

Multiselect 생성 및 구성​

구성은 4단계로 진행됩니다:

1단계: 연결 폼(사람-역할) 생성​

먼저 "브리지" 폼을 생성하겠습니다.

1 - 관리 > 폼으로 이동하여 "새 폼 만들기"를 클릭합니다.

2 - 폼 제목: 사람-역할.

3 - 테이블 이름: 사람_역할 (또는 유사한 이름).

4 - 중요: 부모 필드에서 이 경우 사람인 기본 "부모" 폼을 선택합니다. 그러면 사람-역할이 하위 폼이 됩니다.

5 - 저장을 클릭합니다.

연결을 위한 부모 폼 생성

2단계: 연결 폼의 필드 구성​

사람-역할 폼에 "브리지" 필드를 추가합니다.

1 - 방금 생성한 사람-역할 폼의 필드 관리로 이동합니다.

2 - 두 개의 Select 유형 필드를 추가합니다. 하나는 사람을 가리키고 다른 하나는 역할을 가리킵니다.

필드 1(사람에 대한 링크):

사람에 대한 링크 필드

  • 필드 제목: 사람 이름
  • 컬럼 이름: 사람_이름_id (_id 규칙을 따름)
  • 유형: select - select
  • 링크: 구성을 클릭하고 사람 폼의 기본 필드를 선택합니다. 예: 사람:이름.
  • 저장을 클릭합니다.

필드 2(역할에 대한 링크):

  • 필드 제목: 사람의 역할.
  • 컬럼 이름: 역할_사람_id.
  • 유형: select - select.
  • 링크: 구성을 클릭하고 역할 폼의 기본 필드를 선택합니다. 예: 역할:역할_id.
  • 저장을 클릭합니다.

사람 역할에 대한 링크 필드

3단계: "부모" 폼에 Multiselect 필드 생성​

"브리지"(사람-역할)가 준비되었으므로 사람 폼으로 돌아가 최종 필드를 만들 수 있습니다.

1 - 사람 폼의 필드 관리로 이동합니다.

2 - "새 필드 만들기"를 클릭합니다.

3 - 필드 제목: 사람 역할.

4 - 컬럼 이름: 사람_역할_id.

5 - 유형: multiselect - multiselect.

4단계: Multiselect 필드 구성​

multiselect 유형을 선택하면 참조와 링크라는 두 개의 새 구성 필드가 나타납니다.

1 - 참조(관계를 저장할 위치?)​

  • 이 필드는 Netuno에 다음을 알려줍니다: "'브리지' 폼의 어떤 필드가 나(사람)를 다시 참조하나요?"
  • 구성을 클릭합니다.
  • 연결 폼(사람-역할)과 2단계(필드 1)에서 만든 필드를 선택합니다. 예: 사람_역할:사람_이름_id.

2 - 링크(옵션을 가져올 위치?)​

  • 이 필드는 다음을 나타냅니다: "'브리지' 폼의 어떤 필드가 옵션(역할)을 참조하나요?"
  • 구성을 클릭합니다.
  • 연결 폼(사람-역할)과 2단계(필드 2)에서 만든 필드를 선택합니다. 예: 사람_역할:역할_사람_id.

3 - 변경 사항 저장​

  • 필드 관리에서 저장 버튼을 클릭하여 모든 설정을 적용합니다.

Multiselect 필드 구성

결과​

완료되었습니다! 이제 "보기" 모드에서 사람 폼에 레코드를 추가하거나 편집할 때, "사람 역할" 필드는 다중 선택 상자로 표시됩니다. 목록에서 여러 역할(역할 폼에서 가져옴)을 선택할 수 있으며, Netuno는 이러한 연결을 사람-역할 폼 안에 자동으로 저장합니다.

궁금한 점이 있으면 이 페이지 하단에 있는 커뮤니티 및 기타 채널을 통해 문의해 주세요.

즐거운 개발 되세요!