계층적 쿼리 작성
조건 작성기의 계층적 관계를 활용하여 보다 효율적인 쿼리를 단순화하고 빌드합니다.
주요 이점
- 기록 계층 구조를 기반으로 조건 작성기에서 테이블 데이터를 필터링합니다.
- 단일 조건으로 전체 계층 구조를 검색합니다.
- 더 적은 지속적인 유지관리로 쿼리 작성을 간소화합니다.
조건 작성기에서 쿼리를 작성하는 작업은 여러 OR 조건을 사용하여 계층적 관계의 각 수준을 검색해야 하는 경우 번거로울 수 있습니다. 계층적 쿼리는 단일 노드를 지정하고 거기에서 계층 구조를 검색하여 시간과 노력을 절약할 수 있도록 하여 이 프로세스를 간소화합니다.
참조 필드를 사용하여 계층 구조 정의
같은 테이블에 있는 관련 기록 간의 계층 구조는 참조 필드를 기반으로 합니다. 상위-하위 관계가 있는 기존 참조 필드를 사용하거나 새 참조 필드를 생성하고 각 기록의 값으로 채울 수 있습니다.
예를 들어, 상위 필드를 사용하여 위치 [cmn_location] 테이블의 계층 구조를 정의할 수 있습니다. 각 위치에는 위치 [cmn_location] 테이블의 또 다른 기록인 상위 항목이 있습니다. 예를 들어 시카고 및 스프링필드 위치 기록의 상위 필드에는 일리노이 위치 기록의 sys_id 값이 있습니다. 도로명 주소의 상위 필드에는 자신이 속한 도시의 위치가 sys_id.
많은 테이블에는 기록 간의 상위-하위 관계를 나타내는 자체 참조 필드가 포함되어 있습니다. 그러나 조건 작성기에서 계층 구조를 쉽게 검색할 수 있는 계층 경로는 기록 계층 구조 [sys_record_hierarchy] 테이블에서 해당 테이블의 계층 구조를 정의할 때까지 생성 Now Platform 되지 않습니다.
위치 [cmn_location] 테이블에 대한 기록 계층 구조를 생성하면 Now Platform 테이블의 각 위치 기록에 대한 계층 구조 경로가 자동으로 빌드됩니다. 이렇게 하면 각 위치에 하위 위치가 있을 수 있는 중첩 구조가 생성되어 트리와 같은 계층 구조를 형성합니다. 기록이 추가, 변경 또는 제거되면 이러한 Now Platform 경로를 자동으로 업데이트합니다.
계층 구조가 정의되고 각 기록이 에 Now Platform의해 계층 경로 정보로 업데이트되면 조건 작성기를 사용하여 대상 쿼리를 만들 수 있습니다. 예를 들어 위치 계층 구조에서 시작점을 지정하고 계층 구조를 쿼리하여 계층 구조의 해당 부분에서 위치와 연결된 모든 자산을 검색할 수 있습니다.
쿼리 작성 개요
- 계층 쿼리를 작성하는 데 사용할 상위-하위 기록이 포함된 테이블을 식별합니다. 예를 들어 호출자 또는 자산의 위치를 기반으로 쿼리를 작성하려면 위치 [cmn_location] 테이블을 기반으로 기록 계층 구조를 정의할 수 있습니다.
- 테이블에서 기록 간의 관계를 정의하는 참조 필드를 결정합니다. 예를 들어, 위치 [cmn_location] 테이블의 상위 필드는 다른 위치에 속한 위치를 설명합니다.
- 기록 계층 구조 [sys_record_hierarchy] 테이블에 계층 구조를 만들고 사용할 테이블과 참조 필드를 지정합니다. 테이블의 Now Platform 각 기록에 계층 경로 정보를 자동으로 추가합니다.
- 생성한 계층 구조를 선택하여 조건 작성기에서 계층 구조 쿼리를 생성합니다. 연산자를 사용하여 계층 구조를 검색합니다.
사용 케이스
동일한 테이블의 기록에 대한 관계가 있는 참조 필드를 사용하여 기록 계층 구조를 정의할 수 있습니다. 위치 [cmn_location], 사용자 [sys_user] 및 부서 [cmn_department] 테이블에는 기본적으로 상위-하위 관계가 있는 참조 필드가 포함되어 있습니다. 다른 테이블에 참조 필드를 생성하고 여기에 각 기록의 값을 채울 수도 있습니다.
- 위치 계층 구조
- 위치 [cmn_location] 테이블의 상위 참조 필드를 기반으로 상위 계층 구조 라는 기록 계층 구조를 작성하여 위치에 따라 기록을 검색합니다.
기록 계층 구조를 생성하면 각 위치 기록이 계층 경로로 업데이트되므로 위치 계층 구조를 기반으로 조건 작성기에서 쿼리를 생성할 수 있습니다. 인시던트 기록에는 위치 참조 필드가 있으므로 호출자의 위치를 기반으로 인시던트를 검색할 수 있습니다.
- 다음과 같은 쿼리를 사용하여 일리노이주에 기반을 둔 호출자의 모든 인시던트를 찾습니다.
[숙박 위치 정보] [계층 구조에 있음] [상위 계층 구조]는 [Illinois]([포함됨])에서 시작합니다.
이 쿼리는 호출자의 위치가 일리노이, 일리노이의 모든 도시 또는 일리노이의 모든 도시의 주소인 인시던트를 반환합니다.
- 일리노이의 도시와 도로명 주소에 대한 인시던트를 찾을 수 있지만 다음과 같은 쿼리를 사용하여 호출자 위치가 단순히 일리노이인 인시던트는 찾을 수 없습니다.
[숙박 위치 정보] [계층 구조에 있음] [상위 계층 구조]이며 [제외됨]인 [일리노이]에서 시작
- 다음과 같은 쿼리에서 동적 필터를 사용하여 로그인한 사용자로서의 위치를 기반으로 모든 인시던트를 찾습니다.
[숙박 위치 정보] [계층 구조에 있음(동적)] [상위 계층 구조] [포함됨]인 [내 위치]에서 시작
- 다음과 같은 쿼리를 사용하여 일리노이주에 기반을 둔 호출자의 모든 인시던트를 찾습니다.
- 조직 계층 구조
- 사용자 [sys_user] 테이블의 관리자 참조 필드를 기반으로 조직 계층 구조 라는 기록 계층 구조를 생성하여 조직의 관리 체인 전체에서 기록을 검색합니다.
기록 계층 구조를 생성하면 각 사용자 기록이 계층 경로로 업데이트되므로 관리 계층 구조를 기반으로 조건 작성기에서 쿼리를 생성할 수 있습니다. 테이블을 쿼리하고 사용자 [sys_user] 테이블을 가리키는 참조 필드를 선택하면 관리 체인을 통해 검색할 수 있습니다.
- 다음과 같은 쿼리를 사용하여 Bud Richman에게 보고하는 사용자에게 할당된 모든 인시던트를 찾습니다.
[할당 대상] [계층 구조에 있음] [조직 계층 구조] [Bud Richman]에서 시작([포함됨])
이 예에서 계층 구조를 검색하면 Bud에게 보고하는 사용자와 그의 직속 부하 직원 등에 할당된 인시던트를 포함하여 Bud Richman에게 할당된 인시던트가 반환됩니다.
- 다음과 같은 동적 쿼리를 사용하여 본인과 조직의 사용자에게 할당된 모든 인시던트를 찾습니다.
[할당 대상] [계층 구조에 있음(동적)] [조직 계층 구조] [포함됨]인 [나]에서 시작
- 다음과 같은 쿼리를 사용하여 사용자 [sys_user] 테이블에서 직접 필터링하여 관리 체인 자체를 봅니다.
[관리자] [계층 구조에 있음] [조직 계층 구조] [Bud Richman]에서 시작 [포함됨]
- 다음과 같은 동적 쿼리를 사용하여 사용자 [sys_user] 테이블에서 직접 필터링하여 보고하는 사용자를 봅니다.
[관리자] [계층 구조에 있음(동적)] [조직 계층 구조] [포함됨]인 [나]에서 시작
- 다음과 같은 쿼리를 사용하여 Bud Richman에게 보고하는 사용자에게 할당된 모든 인시던트를 찾습니다.
- 부서 계층 구조
- 부서 [cmn_department] 테이블의 상위 참조 필드를 기반으로 부서 계층 구조 라는 기록 계층 구조를 생성하여 회사의 부서와 관련된 자산을 검색합니다.
기록 계층 구조를 생성하면 각 부서 기록이 계층 경로로 업데이트되므로 부서 계층 구조를 기반으로 조건 작성기에서 쿼리를 생성할 수 있습니다. 자산 기록에는 자산 [sys_user] 테이블의 부서 필드를 가리키는 부서 참조 필드가 있으므로 특정 부서에 속한 자산을 쿼리할 수 있습니다.
- 다음과 같은 쿼리를 사용하여 IT 부서에 속한 모든 자산을 찾습니다.
[부서] [계층 구조에 있음] [부서 계층 구조] 시작 위치 [IT], [포함됨]
이 예에서 계층 구조를 검색하면 IT 부서에 속하는 부서와 연결된 자산 등 IT 부서와 연결된 자산이 반환됩니다.
- 다음과 같은 쿼리를 사용하여 부서 [cmn_department] 테이블에서 직접 필터링하여 IT 부서 아래의 모든 부서를 찾습니다.
[상위] [계층 구조에 있음] [부서 계층 구조] 시작 위치 [IT], [포함됨]
- 다음과 같은 쿼리를 사용하여 IT 부서에 속한 모든 자산을 찾습니다.