2017-02-13 4 views
0

기본적으로 사전 결정된 목록의 항목이있는 배낭을 들고있는 캐릭터를 모델링하려고합니다. 지금까지 나는 이것을 생각해 냈다.핵심 데이터의 "Character-Inventory-Item"스키마 모델링 방법

Core Data Model

내 주요 문제는 데이터가 내가 그 관계, 간단한 문자에 의해 결정된다 읽은 내용에서 배열/목록 등을 처리하는 방법을 핵심 이해에 - 항목의 관계가 처음 생각 해낸하지만, 미리 지정된 항목 (런타임에 사용자가 추가 할 수 있음)에서 선택한 항목별로 사용자 지정 설명을 추가 할 수 있기를 원했습니다. 각 캐릭터는 사용자 지정 설명 및 사용자 지정 "금액"또는 개수가있는 항목 목록이있는 "배낭"을 하나만 갖습니다. 그 책가방은 이론적으로 같은 품목 2 개를 가질 수 있지만 설명이 다르므로 한 품목에 대해 2의 수가 항상 적절하지는 않습니다. 또한 여러 문자 프로필에 대한 옵션이 있으므로 항목이 여러 다른 배낭에 속할 수 있지만 설명/개수 등이 다를 수 있습니다.

그래서 핵심 문제는 코어 데이터 처리 목록 . 그리고 "character-backpack-item"관계를 허용하기 위해이 문제를 올바르게 해결할 수있는 방법.

감사합니다.

답변

0

짧고 빠른 청소 :

1 : BackPackItem

2 item에서 속성을 추가 : 그 배낭은 이론적으로 동일한 2를 수있는 item 기업

제거 항목이 있지만 다른 설명이있는 경우

3 : BackPackItem에 속성 backpackItemID을 추가하고 BackPackItem 엔티티를 만들 때마다 고유 한 ID를 할당하십시오. 그렇게하면 동일한 정보를 가지고 있지만 ID가 다른 여러 항목을 가질 수 있습니다.

지금 당신은 당신이 가져올 때 할 필요는를위한 그것의 이름으로 Character 엔티티를 가져 오기 위해 마지막으로

(당신이 원하는대로 할 필요하지만, 내 의견으로는 더 깨끗하고 일을 계속하지 않음) 예. 그리고 NSFetchRequestBackPackItem (연관 이름이 지정되면 associatedBackPackItems)을 relationshipKeyPathsForPrefetching으로 추가하면 모든 associatedBackPackItems이 자동으로 가져 오기됩니다.

이제 Character을 가져 왔고 BackPackItem ->character.associatedBackpackItems에 액세스하려는 경우 해당 문자에 연결된 모든 항목을 제공합니다.

+0

감사합니다. 관련 코드를 작성하지 않았으므로이 모든 것을 테스트하는 데 시간이 걸릴 수도 있지만 좋을 것입니다. 나는 아무도 elses 시간 낭비하지 않는다 그래서 나는 이것을 지금 똑딱 거릴 것이다 : – mccal99

+0

@ mccal99 NP, 당신이 가지고있는 아주 간단한 체제 같이 보인다, 그래서 이것은 제일 방법이어야한다. 세 번째 관계를 갖는 것만으로도 상황이 정말 엉망이됩니다. 일을 단순하게 유지하려고하면 코드를 깨끗하게하고 두통을 덜 수 있습니다. 나는 편집을 만들었습니다. itemS로 이름을 바꿀 필요가 없습니다. item single이 더 정확합니다. –