2014-07-22 4 views
0

CoreData를 사용하는 응용 프로그램에서 서로 관련이있는 두 개의 엔티티를 만들려고합니다. ListItem이라고하고 각각 ListItem이라고합시다. 이제 어떤 것이 더 좋으며, Item 엔티티에서 관계, 일대 다 또는 상위 속성을 사용하고 싶습니다. 예를 들어 관계를 사용할 경우 각 Item을 부모 인 List에 연결합니다. 반면에 속성을 사용하면 List의 ID를 속성에 저장합니다.CoreData 관계 vs. 속성

더 나은 접근 방법 인 관계 또는 속성은 무엇이며 각 접근법의 장단점은 무엇입니까?

답변

0

관계를 사용해야합니다. 이로 인해 확장 가능하고 사용 가능하며 성능이 우수한 코드가 생성됩니다.

상위 엔티티의 개념은 실제로 매우 다릅니다. 동일한 기본 속성을 공유하고 추가 속성과 약간 다를 수도있는 엔티티를 의미합니다. 예를 들어 Animal이 상위 항목이 될 수 있으며 Bird, Mammal은 하위 항목이 될 수 있습니다. 그들은 공통 필드를 가지지 만 다른 필드도 가질 수 있습니다.

상위 엔티티의 가장 큰 단점은 모든 하위 엔티티가 동일한 SQLite 테이블에 에 저장되어 결국 성능에 영향을 미친다는 것입니다.

+0

관계를 사용하는 경우에도 동일한 엔티티가 동일한 SQLite 테이블에 저장되는 것이 기본값이 아닌가요? 나는 하나 이상의 하위 엔티티를 생성 할 경우 서로 다른 테이블 (즉, 모든 데이터를 포함하는 각 엔티티의 테이블)에 각각있을 것이며 각 엔티티는 관계로 상위 엔티티에 연결됩니다. 이 경우 ID를 저장하는 관계 또는 속성을 사용하는지 여부는 중요하지 않습니다. 내가 틀렸다면 나를 바로 잡으십시오. – Badie

+0

예, 잘못되었습니다. 관계로 연결된 일반 엔티티와 부모 및 자식 엔티티를 혼동하고 있습니다. (이것들은 계층 적 "부모 - 자식 - 같은"구조를 형성 할 수도 있고 그렇지 않을 수도 있습니다.) 아마도 데이터베이스 (본질적으로 파일)와 테이블 (이 파일의 구조적 요소)을 혼동했을 것입니다. – Mundi