2012-02-03 2 views
1

무엇이 더 효율적입니까? 수업을 모델링하는 가장 좋은 방법은 무엇입니까?

또는

큰 종류가 다른 종류의 키가있는 PROPERTYLIST을 가지고 필터링 및 단체는 제 1 종에 속하는 복구하는 두 번째 종류를 사용하는 하나 개의 속성을 가진 많은 종류가. 목록 당 Aprox 6k 개 항목.

옵션 1 _ __ _ __

class customer() 
    propertyinteger 
    propertystriing 
    ... 
    propertyintegerID = use to be filtered and indexed 
    thousand of costumers 

옵션 2 _ __ _ ____

class customer() 
    propertyinteger 
    propertystriing 

class CustomerGroup() 
    propertystring 
    propettycustomerList (repeated=True) (save a list with __key__ of customer class) 

그리고 CustomerGroup ListProperty 만 들어갈 때 사용 삼 stomer 나는 관심이 있어요. 목록에는 6k aprox가 있습니다.

감사합니다.

답변

1

옵션 1은 괜찮을 것입니다. 귀하를 올바르게 이해하면 각 고객은 한 그룹에 속할 수 있고 한 고객은 한 번에 한 그룹에만 속할 수 있으며 한 그룹에 속한 모든 고객을 쿼리 할 수 ​​있기를 원합니다. 그룹 쿼리는 Customer 종류의 단일 속성에 대한 동등한 필터 일뿐입니다.

일관성 보장 및 쿼리에 대한 필요성과 관련하여 다른 고려 사항이 있습니다. 두 개의 고객 엔티티가 별도의 엔티티 그룹에 있어야한다고 가정하면 그룹 ID 등록 정보의 색인이 최종 일관성으로 업데이트되므로 새 고객 또는 그룹 ID의 변경이 업데이트 직후까지 그룹 질의에 대한 결과로 나타나지 않을 수 있습니다 . 그렇지 않으면 동일한 엔티티 그룹에있는 옵션 2 또는 별도의 고객 대 그룹 페어링 엔티티 집합이 그룹 질의 (조상 필터 포함)를 업데이트와 강하게 일치시킵니다. 옵션 1은 모든 고객 엔티티를 동일한 그룹에 포함 시키면 강력하게 일관성을 유지할 수 있지만 앱의 필요에 따라 잠재적 인 단점이 있습니다.

관련 문제