관계

관계는 참조 필드입니다. 한 레코드가 다른 레코드를 가리키며, 쿼리는 같은 요청에서 이를 가로질러 읽습니다. 필드는 관계의 종류를 선언하며, 그 종류가 액세스와 삭제가 관계를 따라 전파되는지를 결정합니다.

참조를 가로질러 읽기

GraphQL에서 참조는 대상 레코드 자체의 타입으로 결정되므로, 관련 필드를 인라인으로 선택합니다. 필드가 가리킬 수 있는 모델을 제한할 수 있습니다. 둘 이상을 허용하면 유니온을 반환하며, 이는 인라인 프래그먼트로 읽습니다. SDK의 데이터 클라이언트에서 관계는 옵트인 방식이며 include로 요청하고, 세 단계까지 중첩됩니다.

한 요청 안에서 같은 모델의 레코드를 가리키는 참조는 묶어서 한꺼번에 가져옵니다. 쿼리의 중첩 깊이는 기본적으로 최대 24단계까지 허용됩니다.

필터링과 쓰기

목록 쿼리는 참조된 모델 자신의 필터로 참조를 거쳐 필터링할 수 있습니다. 예를 들어 특정 자연 키를 가진 작성자의 게시물을 찾을 수 있습니다. 쓰기는 레코드의 자연 키로 참조를 그 레코드에 연결하고, 연결을 해제하면 참조가 비워집니다.

관계의 종류

일반 참조는 구조적일 뿐이며, 가리키는 레코드에 대한 액세스 권한을 부여하지 않습니다. 읽기 연관은 읽기에 한해 이를 바꿉니다. 참조된 레코드를 읽을 수 있는 사람은 한 단계 범위에서 그것을 참조하는 레코드도 읽을 수 있습니다. 컴포지션은 자식을 부모의 소유로 만들어 액세스와 삭제가 부모에서 자식으로 연쇄되며, 항상 단일 값입니다. 네 번째 종류는 모델을 트리로 만들며, 자세한 내용은 계층 구조에서 설명합니다.

역방향 탐색

참조에 inverse 이름을 지정하면 대상 모델에 자신을 가리키는 레코드를 나열하는 필드가 생깁니다. 컴포지션에서는 그 필드가 일반 목록입니다. 연관에서는 모델의 목록 쿼리와 같은 필터, 정렬, 페이징 인수를 받는 페이지 단위 커넥션입니다.

자세한 내용

필드 타입 레퍼런스는 참조 필드와 그 옵션을 설명합니다. 관계의 종류는 모델 설정 레퍼런스 문서에서 다룹니다.