더북(TheBook)

부모나 자식 참조

부모나 자식 엔터티를 참조하는 간단한 기법이 하나 있다. 다음과 같이 그림 8-11에 나온 데이터를 사용해서 부모를 참조하는 제품 카테고리를 모델링하는 것이다.


{
  {productCategoryID: 'PC233', name:'Pencils',
      parentID:'PC72'},
  {productCategoryID: 'PC72', name:'Writing Instruments',
      parentID: 'PC37''},
  {productCategoryID: 'PC37', name:'Office Supplies',
      parentID: 'P01'},
  {productCategoryID: 'P01', name:'Product Categories' }
}

계층 관계에서 루트(맨 꼭대기)에 있는 제품 카테고리는 부모가 없으므로 이 문서에서도 부모 필드가 없다는 점에 주목하자.

이러한 패턴은 특정 항목을 보여준 다음 좀 더 일반적인 카테고리 유형을 표시해야 하는 경우에 유용하다.

유사한 패턴으로 자식을 참조하는 예는 다음과 같다.


{
  {productCategoryID: 'P01', name:'Product Categories',
      childrenIDs: ['P37','P39','P41']},
      {productCategoryID: 'PC37', name:'Office Supplies',
          childrenIDs: ['PC72','PC73','PC74'']},
          {productCategoryID: 'PC72', name:'Writing
              Instruments', childrenIDs: ['PC233','PC234']'},
              {productCategoryID: 'PC233', name:'Pencils'}
}

연필처럼 계층 관계에서 가장 밑에 있는 노드는 자식이 없으므로 childrenIDs 필드가 없다.

이런 패턴은 문서에 있는 인스턴스의 자식을 주기적으로 가져와야 할 때 유용하다. 예를 들어 애플리케이션에서 드릴다운drill down 기능을 지원해야 한다면 이 패턴을 사용해 계층 관계에서 현재 선택한 항목을 기준으로 모든 자식을 가져오는 데 사용할 수 있다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.