2013-07-09 2 views
0

내 핵심 데이터 모델 구조 계획을 결정하는 데 어려움이있는 것처럼 보입니다. 핵심 데이터가 내 경우에 어떻게 작동해야하는지 명확하게 알지 못하기 때문입니다. 이제 엔티티가 CustomerCity입니다. 각각에 속성이 거의 없으며 지금은 관계가 없습니다. 그들은 둘 다 다른 객체와 많은 관계를 가지고 있으므로 완전히 독립적 인 객체입니다. 내 Customer 엔티티에서 어떤 고객이 위치해 있는지 city 속성이 있습니다. 그것의 값은 name (도시의 이름) City 엔터티의 값과 일치해야합니다. 스키마는 다음과 같습니다. enter image description here핵심 데이터 모델 계획

에 대한 객체는 웹에서 JSON 파일을 구문 분석하여 구성되며 이제이 부분이 올바르게 작동합니다. 나는 City 엔티티에서 이름 속성 값을 검색하고 도시의 속성에 저장합니다 Customer 위해 (엔티티에서 생성) NSManagedObject 하위 클래스에 메소드를 추가 :

- (City *)city 
{ 
    return (City *)[[PTDataFetchHelper sharedInstance] entityForName:@"City" withServerID:self.city_server_id inContext:[self managedObjectContext]]; 
} 

이 관계없이 작동하지만, 내 jQuery과 (내가 NSFetchedResultsController를 사용하고 소스 같은) 가져 오기 이런 종류의 끔찍한 일을 시작합니다. 또한이 스키마를 사용하면 CustomerCity 개체 모두에서 검색을 구현할 수 없다는 것을 이해합니다. 한 종류의 개체에서만 가져올 수 있습니다. 이 두 가지에 대해 상위 엔티티를 만들 수 있지만 논리 적으로나 구조적으로 독립적 인 것으로 나타났습니다. 이 두 가지 문제를 해결하는 가장 좋은 방법은 무엇입니까? 모든 의견을 감사드립니다.

답변

1

몇 가지 관찰 : 당신은 모델의 CityCustomer 사이의 관계를 설정 피하기 위해 신중한 노력을했습니다

  • . 나는 왜 내가 당신의 요구 사항에 대해 이해하는지에 근거하여 확신하지 못합니다. Customer에 대한 NSManagedObject 하위 클래스의 메서드를 추가하여 City에서 이름 속성 값을 검색하고 city 속성에 저장한다고 설명합니다.하지만 그건 당신이하는 것처럼 보이지 않습니다. city 속성의 Customer에 대한 getter 메서드를 만들었습니다.이 메서드는 호출 할 때마다 컨텍스트에서 도시 이름을 동적으로 가져옵니다. 이것은보고 속도가 느려질 수 있습니다.

  • 당신 관계를 주사하는 NSFetchRequest을 만들 수 있습니다. customerInstance.city는 항상 당신이 지금 구성이 같은 cityInstance.name있는 이름이어야하기 때문에

  • CustomerCity 실제로 논리적으로 독립적이지 :에 봐.

+0

NSBum, 당신은 절대적으로 맞습니다. 여기서 관계를 피할 필요가 없습니다. 이전 프로그래머의 코드 일 뿐이므로 수정해야합니다. 문서는 우리가 하나의 엔티티의 속성뿐만 아니라 관계와 술어를 사용하여 모든 곳의 모든 것을 가져올 수 있음을 알려주며 두 가지 문제를 모두 해결할 수 있습니다. 도와 주셔서 감사합니다! – Alex

+1

관계없이 동일한 아키텍처를 유지하려는 경우'city' getter가'City' 객체에서 도시 이름을 한 번 가져 오는 것으로 약간의 성능 향상을 얻을 수 있습니다. – FluffulousChimp

+0

손대지 않은 데이터 모델을 유지할 필요가 없으므로 엔티티 간의 관계를 구현합니다. 다시 한 번 감사드립니다! – Alex

관련 문제