开发者

IPhone CoreData: How should I relate many child entities to their parents

I am trying to import data from a database that uses primary key / foreign key relations to a core data database in Xcode.

I have code that creates hundreds of child entities in a managed object context:

Each child has an ID that 开发者_StackOverflow中文版corresponds to a parent.

child1    parentID = 3
child2    parentID = 17
child3    parentID = 17
...
childn    parentID = 5

I now need to relate each child to its parent. The parents are all stored in persistent memory.

My first thought was to preform a fetch for each child to get its parent. However, I think this would be slow.

Am I correct? How should I do this instead?


Why are you modeling this parent-child relationship using an attribute in the child entity? You should model this using a to-many relationship from the parent entity to the child entity, and a to-one inverse relationship from the child to the parent entity. Set on delete cascade on the to-many relationship and nullify on the to-one relationship.

Then, once you have a child object you simply use the to-one relationship to the parent entity to access the child's parent.


I have been looking at a few examples and have decided that the best approach would be the following

1) Fetch all the parents

2) Transfer them into a dictionary with their parentID as the key

Then for each child, look up its parent in the dictionary, then relate them together.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜