2009-12-29 3 views
5

1 : 1 관계에서 고스트 패턴을 찾아 보겠지만 1 : n 관계가 충분한 지 확신 할 수 없습니다.Data Mapper에서 일대 다 관계를로드하는 방법은 무엇입니까?

예를 들어, Item 개체가 100 개일 수있는 Order 개체를로드 할 때 먼저 items 속성에 NULL을 할당합니다.

질문 :

A) 나는 NULL 지정한 다음, 해당 항목의 모든 주문에 대한 항목 속성보기의 첫 접근에 그들 모두를로드해야 하는가?

B) 또는 order_id가 설정된 모든 항목 Ghost 객체 만 포함하는 경량 레코드 집합 만로드해야하지만 그 밖의 모든 항목은 NULL입니다. 그리고 Item 객체가 액세스되어 더 많은 데이터를 가져 오자마자 세부 정보, 특정 Item 객체 데이터를 게으른로드합니까?

답변

1

글쎄 IMO는 모든 상황에서 지연로드가 필요합니다. 그러나 100 개 항목을 가질 수있는 주문이 많으면 동시에 100 개 항목을 모두로드하려고하는 경우는 드뭅니다.

내가 권하고 싶은 것은 각 항목을로드 할 때 "페이지" 개의 항목 또는 단 하나의 항목 만로드 할 수 있도록하는 것입니다. 예를 들어 모든 항목을 나열해야한다면 "page"을로드 할 수 있으며 각 항목은 필요할 때로드 할 수 있기 때문에 선택한 페이지를로드하면됩니다. 또한 성능 향상을 위해 이러한 객체를 재활용하려는 경우 10 가지 유령 항목을 작성한 다음 "페이지"을 해당 항목 10 개에 한 번에로드 할 수 있습니다.

반면에 요청에 따라 항목을로드하므로 하나의 항목 만로드하면 원하는 경우에만 해당 항목의 전체 세부 정보를 표시 할 수 있습니다.

관련 문제