2011-02-23 4 views
3

좋은 방법이 없다고 가정하지만 Appengine의 데이터 스토어에서 설정 작업을 구현하는 방법은 무엇입니까?Appengine 데이터 스토어에서 작업 설정

예를 들어 주어진 두 개의 정수 컬렉션은 데이터 저장소에 데이터를 저장하여 intersect 및 except (B가 아닌 A의 모든 항목) 작업에 좋은 성능을 얻으려면 어떻게해야합니까?

+0

사용 사례는 무엇입니까? 몇 가지 일반적인 대답을했지만 어쩌면 실제로하려고하는 것이 더 나은 해결책 일 수 있습니다. –

+0

이것은 이론적 인 질문입니다. 내가 생각하기 시작한 것과 다른 사람들의 의견을 듣고 싶었던 것입니다. – r0u1i

답변

4

데이터 저장소 API에 내장 된 집합 연산이 없습니다.

좀 작은 세트
  1. (수백 개의 항목) 당신은 세트 A와 세트 B 모두 키 전용 쿼리를하고 넘어갈 수도 있고, 응용 프로그램 코드의 교차점을 수행 : 나는 당신이 두 가지 옵션을 가지고 참조 . "작은 것"의 정확한 정의는 응용 프로그램에 따라 다릅니다.

  2. 큰 세트의 경우 원하는 교차로를 미리 알면 새 레코드를 삽입 할 때마다 계산할 수 있습니다. 예를 들어 두 세트 A와 B가 있다고 가정하고 궁극적으로 (A와 B가 교차하는) 쿼리를 원할 것입니다. A를 삽입 할 때마다 이미 B에 있는지 확인하십시오. 일치하는 경우이 사실을 별도의 엔티티 유형 또는 A 또는 B 자체의 부울 속성으로 어딘가에 기록하십시오. 물론 B의 경우에도이 작업을 수행해야합니다.

옵션 1을 사용하면 많은 세트를 가질 수 있지만 각 세트의 크기에 따라 제한됩니다.

옵션 2를 사용하면 수백만 멤버가있는 세트를 가질 수 있지만 세트가 여러 개있는 경우 세트 및 연산자의 가능한 모든 순열을 정의하려고하면 다루기 힘들어집니다.