0

stackmob (baas)에서 실행되는 백엔드가있는 ios 애플리케이션에 대해 일대 다 관계에 대한 아키텍처 지침을 찾고 있습니다.stackmob 1 대다 관계 아키텍처

내 프로젝트에서 게시물 흐름과 같은 페이스 북을 구현하고 싶습니다. 사용자는 게시물에 댓글을 쓸 수 있습니다.

한 후 -> N 의견

나는 의견의 수를 표시 할 게시물의 뷰 (아이폰 OS jQuery과)를 만들

. 실제 의견은 하위보기에 표시됩니다. 이것을 구현하는 가장 좋은 방법은 무엇입니까? 이러한 관련 객체를 어떻게 쿼리해야합니까?

내가 먼저 모든 게시물을 취득 해, 각 게시물에 대한 난 당신의 제안이 1 대를 쿼리에 관한 것입니다 내가

:-(성능 문제로 실행하는 것이 두려워 의견의 수를 조회해야하는 경우 많은 http 오버 헤드를 생성하지 않고 많은 관계 ...

나는 적어도 배웠습니다. StackMob은 관계의 속성을 가져 오는 것 (project.user == X 작업)을 지원하지 않습니다 :

NSPredicate traversing relationship (StackMob)

지원해 주셔서 감사합니다!

건배,

월 당신이 this tutorial을 읽은 있으리라 믿고있어

+0

에 따라 다릅니다. CoreData를 사용합니까? – LuisCien

+0

예 stackmobs ios sdk를 통해 CoreData를 사용합니다. –

+0

좋아, 곧 답변을 게시하겠습니다. – LuisCien

답변

0

.

CoreData는 "오류 발생"으로 알려진 메커니즘을 사용하여 응용 프로그램의 메모리 사용을 줄입니다. 에서 애플의 docs :

"A 오류가 아직 완전히 실현되지 않은 관리되는 개체 또는 관계를 나타내는 컬렉션 개체 나타내는 개체 틀"이것이 의미하는 것은 당신이 읽을 때이다

을 CoreData의 엔티티는 하나의 엔티티를 채우기 위해 전체 객체 그래프를 읽지 않습니다.

"Post"엔티티를 읽는 경우 해당 게시물과 관련된 모든 댓글을 읽지는 않습니다. 데이터 저장소로 StackMob을 사용하는 경우에도 마찬가지입니다.

나는 이것을 테스트하기 위해 아주 작은 프로젝트를 만들었으며 이것이 내가 가진 것입니다. 스니퍼 찰스를 사용하여 가져 오기 요청/응답을 볼 수있었습니다. 의 모든 "

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Post" inManagedObjectContext:self.managedObjectContext]; 
[fetchRequest setEntity:entity]; 

[self.managedObjectContext executeFetchRequest:fetchRequest onSuccess:^(NSArray *results) { 

    for (NSManagedObject *managedObject in results) { 
     NSArray *comments = [managedObject valueForKey:@"comments"]; 
     NSLog(@"Post comments: %d", comments.count); 
    } 

} onFailure:^(NSError *error) { 
    NSLog(@"Error fetching: %@", error); 
}]; 

그리고 여기 당신이 응답에서 볼 수 있듯이

[ 
    { 
    "post_id": "85FC22A1-92ED-484B-9B52-78CBFE464E5D", 
    "text": "Post1", 
    "lastmoddate": 1370916620273, 
    "createddate": 1370915371016, 
    "comments": [ 
     "5F421C86-F7E7-4BAD-AB21-F056EB7D9451", 
     "C1CD96E2-856A-43F0-A71D-09CF14732630", 
     "BAD9F652-C181-4AA1-8717-05DD5B2CA54E", 
     "AC7D869B-A2BD-4181-8DCF-21C8E127540F", 
     "2D1A1C80-9A80-48AE-819D-675851EA17D6" 
    ] 
    }, 
    { 
    "post_id": "8A84BE1B-6ECE-4C49-B706-7981490C5C2E", 
    "text": "Post2", 
    "lastmoddate": 1370916678114, 
    "createddate": 1370915379347, 
    "comments": [ 
     "3C001706-2D91-4183-9A07-33D77D5AB307", 
     "E7DC3A89-2C3D-4510-83E5-BE13A9E626CF", 
     "2874B59C-781B-4605-97C7-E4EF7965AF4E" 
    ] 
    }, 
    { 
    "post_id": "13E60590-E4E7-4012-A3E2-2F0339498D94", 
    "text": "Post3", 
    "lastmoddate": 1370916750434, 
    "createddate": 1370915398649, 
    "comments": [ 
     "AEA3E5E3-E32E-4DAA-A649-6D8DE02FB9B2", 
     "DFCBD7E2-9360-4221-99DB-1DE2EE5590CE", 
     "484E6832-3873-4655-A6C1-0303A42127D9", 
     "B2316F8B-0AAF-451F-A91C-9E8B4657B1A5" 
    ] 
    } 
] 

(찰스를 사용) 내가 가진 반응이다 : 여기

One-to-many relationship 내가 사용하는 쿼리입니다 comments "배열에는 StackMob에 저장된 주석의 'Id'가 있지만 실제 주석은 없습니다.

희망이 도움이됩니다.