13.8. Implementing Relationships in Core Data
Problem
You want to be able to link your managed objects to each
other: for instance, linking a Person to the Home he lives in.
Solution
Use inverse relationships in the model editor.
Discussion
Relationships in Core Data can be one-to-one, inverse one-to-many, or inverse many-to-many. Here is an example of each type of relationship:
- One-to-one relationship
An example is the relationship between a person and her nose. Each person can have only one nose and each nose can belong to only one person.
- Inverse one-to-many relationship
An example is the relationship between an employee and his manager. The employee can have only one direct manager, but his manager can have multiple employees working for her. Here the relationship of the employee with the manager is one-to-one, but from the manager’s perspective, the relationship is one (manager) to many (employees); hence the word inverse.
- Inverse many-to-many relationship
An example is the relationship between a person and a car. One car can be used by more than one person, and one person can have more than one car.
In Core Data, you can create one-to-one relationships, but I highly recommend that you avoid doing so because, going back to the example in the preceding list, the person will know what nose she has but the nose will not know who it belongs to. Please note that this is a different one-to-one model than what you might have seen in other database management systems where Object A and B will ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access