2014-07-24 3 views
0

질문이있는 수천 개의 플래시 카드가있는 iOS 앱을 만들고 있습니다. 질문 풀에는 약 10,000 개의 질문이 있으며 5 개 범주로 나뉩니다. 하나의 질문 만 하나의 카테고리 만 가질 수 있습니다. 범주는 변경되지 않으며 수정됩니다. 질문은 텍스트 일뿐입니다. 이미지가 없습니다.CoreData 성능 중복 엔티티와 속성

1)에 카테고리 필드 (INT)와 질문에 대한 엔티티를 생성합니다

나는에 대한 두 가지 방법을 생각했다.

특정 카테고리에 대한 질문 만 얻으려면 결과를 가져옵니다.

2) 범주와 관련된 기본값을 갖는 범주를 제외한 모든 필드가 동일한 5 개의 엔터티를 만듭니다.

왜 옵션 2입니까? 옵션 1)은 깨끗하고 적절한 것이지만 특정 필드를 필터링하는 쿼리를 제출하는 것이 매우 다른 질문을 가지고있어 완전히 다른 Entity를 검색하는 것보다 속도가 느릴 수도 있습니다. SQL 관점에서, 아마도 한 테이블에서 SELECT를 수행 한 다음 다른 테이블에서 SELECT를 수행하는 것이 SELECT보다 빠를 것이라고 생각합니다. 같은 테이블에서?

답변

0

나는 당신과 동의합니다. 옵션 1이 깨끗하고 적절한 것입니다. 다른 엔티티에서 카테고리를 검색하면 최소한의 오버 헤드가 추가됩니다. 또한 카테고리를 편집해야하는 경우 변경할 항목이 하나뿐입니다. 다른 카테고리를 더 쉽게 추가 할 수도 있습니다.

성능에 대해 정말로 우려하고 있다면 (그 시점에서해야한다고 생각하지는 않습니다) 두 가지를 모두 코딩하고 속도 테스트를 수행 할 수 있습니다. 그러나 그것은 정말로 과잉이다. 그리고 차이는 아마 중요하지 않을 것이다.