Skip to main content

1:N 관계 (일대다)

한눈에 보기

1:N 관계는 가장 많이 사용하는 관계 타입입니다. 부모 테이블 하나에 자식 행이 여러 개 연결됩니다. 화면에서는 서브테이블(표 안의 표)로 나타나며, 전표(Document) 화면의 핵심입니다.

소개

1:N 관계는 "하나에 여러 개"가 연결되는 관계입니다. 제조업 앱에서 가장 흔한 구조이며, 발주서-발주품목, 작업지시-작업실적, 입고전표-입고품목 등 거의 모든 전표형 업무가 이 관계를 사용합니다.

발주서 #PO-2025-001
(주)A사 2025-03-15
품목수량단가금액
볼트 M850010050,000← 자식 행 1
너트 M85008040,000← 자식 행 2
와셔 M81,0005050,000← 자식 행 3

이렇게 보입니다

캔버스에서의 모습

1 관계 캔버스 화면

캔버스에서 1:N 관계는 부모 테이블에서 자식 테이블로 화살표가 그어지며, "1" 과 "N" 이 표시됩니다.

발주서 (부모)
발주번호
거래처
발주일자
— 1:N →
발주품목 (자식)
품목코드
수량
단가
금액

양식(Form)에서의 모습 - 서브테이블

1 양식 서브테이블

1:N 관계가 설정된 양식에서, 자식 테이블은 부모 양식 안에 서브테이블(인라인 테이블)로 나타납니다.

이것이 1:N 관계의 핵심 결과물입니다. 부모 양식 안에 자식 데이터를 표 형태로 입력/조회할 수 있습니다.

발주서 양식
발주품목 (서브테이블)
#품목수량단가금액
1볼트M850010050,000
2너트M85008040,000
3와셔M810005050,000

전표(Document) 화면에서의 모습

1 전표 화면

전표 화면에서 1:N 관계는 헤더(부모)+라인아이템(자식) 구조로 표현됩니다. 전표의 핵심 구조입니다.

전표 화면은 1:N 관계의 가장 대표적인 활용입니다. 자세한 내용은 전표 화면을 참고하세요.

목록(List)에서의 모습

1 목록 FK 표시

자식 테이블의 목록에서는 부모를 참조하는 FK 컬럼이 텍스트로 표시됩니다.

자식 테이블(발주품목)의 목록 화면에서 부모(발주서) FK 컬럼은 다음과 같이 표시됩니다:

품목코드수량단가금액발주서
볼트M850010050,000PO-2025-001
너트M85008040,000PO-2025-001
와셔M81,0005050,000PO-2025-001

설정 방법

1단계: 관계 생성

  1. 캔버스에서 부모 테이블(발주서)에서 자식 테이블(발주품목)로 드래그합니다
  2. 관계 속성 패널에서 "1:N" 을 선택합니다

2단계: 표시 컬럼 설정

부모 테이블의 displayColumn을 설정합니다. 이 값이 자식의 FK 드롭다운과 목록에 표시됩니다.

displayColumn표시 예시
발주번호PO-2025-001
발주번호 + 거래처PO-2025-001 (주)A사

3단계: 서브테이블 컬럼 설정

자식 테이블에서 서브테이블에 표시할 컬럼을 선택합니다.

설정설명
표시 컬럼서브테이블에 보여줄 컬럼 선택
컬럼 순서서브테이블 내 컬럼 순서 지정
컬럼 너비각 컬럼의 너비 조절
편집 가능 여부서브테이블에서 직접 편집할 수 있는지 설정

서브테이블 주요 기능

서브테이블에서 제공하는 편리한 기능들:

기능설명
행 추가하단의 "+" 버튼으로 새 행 추가
행 삭제행 선택 후 삭제 버튼 또는 Delete 키
행 이동드래그로 행 순서 변경
인라인 편집셀을 클릭하여 바로 값 입력
합계 행숫자 컬럼의 합계를 자동 표시
자동 계산수량 x 단가 = 금액 같은 수식
품목 검색FK 컬럼에서 검색으로 품목 선택

서브테이블의 수식 설정(lineFormula), 품목 자동채움(itemLookup) 등 상세 기능은 서브테이블 상세 설정에서 자세히 다룹니다.

실무 예시

ERP - 구매 모듈

부모 테이블자식 테이블설명
발주서발주품목발주서 1건에 여러 품목
입고전표입고품목입고 1건에 여러 품목
거래처발주서거래처 1곳에 여러 발주

MES - 생산 모듈

부모 테이블자식 테이블설명
작업지시작업실적지시 1건에 여러 실적 기록
생산계획생산지시계획 1건에 여러 공정 지시
작업지시자재투입지시 1건에 여러 자재 투입

QMS - 품질 모듈

부모 테이블자식 테이블설명
수입검사검사항목검사 1건에 여러 검사 항목
불량보고서불량상세보고서 1건에 여러 불량 상세

자주 묻는 질문

Q: 서브테이블에 최대 몇 행까지 입력할 수 있나요? A: 기술적 제한은 없으나, 화면 성능을 위해 1건당 100행 이내를 권장합니다.

Q: 서브테이블의 행을 다른 테이블에서 참조할 수 있나요? A: 네, 자식 테이블도 독립적인 테이블이므로 다른 테이블과 추가 관계를 맺을 수 있습니다.

Q: 1:N에서 자식 테이블 없이 부모만 저장할 수 있나요? A: 네, 서브테이블에 행을 추가하지 않고 부모 데이터만 저장할 수 있습니다.

Q: 자식 행을 삭제하면 어떻게 되나요? A: 서브테이블에서 행을 삭제하고 저장하면 해당 자식 데이터가 삭제됩니다. 삭제 전 확인 대화상자가 나타납니다.

다음 단계