0

일대 다 관계가있는 데이터 집합이 있다고 가정합니다. 예를 들어, 모든 교사는 많은 (의 배열) 학생이 있으므로 데이터가 같은 중첩 될 수 있습니다비평 면화 된 다차원 데이터 세트에서 Crossfilter를 어떻게 사용할 수 있습니까?

[ 
    { 
     teacher: { 
        'name': 'Ann' 
       }, 
     students: [ ... ] 
    }, 
    ... 
] 

내가 위의 같은 형식의 데이터로 Crossfilter를 사용할 수 있습니까? 또는 많은 예제 에서처럼 데이터를 병합해야합니까?

답변

1

그룹화, 필터링 및 집계의 기초로 중첩 된 엔티티에서 작업하려는 경우 데이터를 병합해야한다고 생각합니다.

Crossfilter가 작동하는 기본 단위는 배열 요소입니다.이 요소는 평면 행에 대해 가장 쉽게 생각할 수 있습니다. Crossfilter의 많은 함수에서 코드는 각 배열 요소에 공급되어 다양한 작업 (그룹, 필터 등)을 수행 할 수 있습니다.

기술적으로 각 요소의 내용을 즉시 탐색하고 기본적으로 병합 된 값을 동적으로 반환 할 수 있습니다. 그러나 이러한 각 함수는 본질적으로 단일 값을 반환해야하므로 하나의 최상위 요소 아래에 여러 중첩 엔터티가있는 경우이 값이 무엇인지 알아 내려고 끊임없이 노력할 것입니다.

따라서 중첩 된 데이터로 작업하는 것이 불가능하다고 말하지만 자연스럽게 표현할 수있는 부분은 제한적일 것이며 이러한 제한 사항을 해결하려고 할 때 복잡성이 급격히 증가 할 것입니다.

평평하게하는 것이 분명히 좋은 방법이라고 생각합니다. 내 경험에 비추어 볼 때 Crossfilter는 데이터 요소를 관계형 데이터베이스의 행으로 생각하면 이해하기가 훨씬 쉽습니다.