2010-01-20 5 views
2

저는 Core Data 기초에 익숙하고 약간의 일을 해 왔지만, 주요 응용 프로그램을 실제로 작성하지는 않았습니다. 이제 나는 하나를 계획해야합니다. 그리고 질문은 핵심 데이터에 대한 것이 아니라 일반적으로 데이터 디자인에 대한 것입니다. 성능을 고려하는 데 중요한 핵심 데이터를 iPhone에서 구현하려고합니다.핵심 데이터 모델 디자인 - 검색 대 관계?

전자 메일 앱을 만드는 중입니다. 전자 메일 앱이 핵심 개체입니다. 전자 메일 저장소에 여러 가지보기를 제공해야합니다. 사용자별로 검색은 물론 "받는 사람이 둘 이상인 모든 전자 메일", "제목이 X보다 긴 모든 전자 메일", "단어 X가 포함 된 모든 전자 메일 "등등.

사람 (보낸 사람 /받는 사람)과 같은 일부 개체는 자연스럽게 일류 개체로 모델링되기 때문에 사람들과 전자 메일 간의 다 대다 관계를 만들 수 있습니다. 위의 몇 가지 예와 같은 다른 검색은 더 인공적이며 자연스럽게 모델을 만들 수 없습니다. 그러나 사전에 새로운 검색을 열거 할 수 있습니다. 즉, 사전에 어떤 기준이 될지 미리 알고 있습니다. 특별한 "검색"객체로

1) 모델이 :

그래서, 그리고 "피사체가 더 이상 X보다 이메일" "> 2 수신자 이메일"같은 일을, 나는 두 가지 전략을 생각한다 새 객체를 상점에 삽입 할 때 전자 메일과 검색 객체 사이에 다 대다 관계를 만들어 검색 할 때 간단한 조인 쿼리입니다.

2) 핵심 전자 메일 개체 이외의 것을 모델링하지 말고 런타임에 저장소의 조건자를 사용하여 검색하면됩니다.

내 질문은 :

당신의 코어 데이터 본능에 따라

, 성능 측면에서이 두 가지 전략의 차이가 얼마나 큰입니까? 내 직감은 # 1이 항상 더 빠를 것이라고 말하지만, 10 %라면 # 2로 더욱 융통성있게하기 위해 성과를 얻으 려합니다. 그러나 # 2가 200 % 더 느린 경우 검색 개체 모델링에 더 많은 작업을 투입해야하며 모든 검색 결과를 미리 생성해야합니다.

정확한 답변은 데이터의 특성에 따라 달라질 수 있습니다.하지만 실제로 느끼는 직감이 있어야합니다. 수만 개가 아니라 수백만 개가 아닌 콘텐츠 개체 및 각 레코드가 있다고 가정 해 봅시다. 여러 메타 데이터 필드가있는 내용 텍스트의 몇 단락입니다.

답변

2

일반적으로 전략 2로 진행하고 실제로 테스트하는 동안 성능 문제가 발생하는 경우 다른 기술을 연구하고 개발하는 데 시간을 할애하는 것이 좋습니다. 핵심 데이터는 사람들이 iPhone에서 특히 생각하는 것보다 더 빠릅니다.

그러나 가능한 모든 검색을 미리 결정할 수 있다면 이점이 있습니다. 전자 메일이 만들어지면 확인하고 모든 적절한 "검색"개체에 추가하는 것처럼 들립니다. 내 직감은 특히 수만개의 이메일 개체에서 전략이 크게 빨라진다는 것입니다.

+1

gerry3에 동의하고 데이터 모델을 제자리에두고 성능을 테스트 할 수 있다면 개발 중에 검색을 추가 할 수 있다고 덧붙입니다. 앱이 처리 할 것으로 예상되는 것보다 더 많은 데이터를 가지고 "테스트"데이터베이스를 만들 수 있습니다. 그런 다음이를 테스트하여 성능 문제를 발견 할 수 있습니다. –