CoreData:如何建模循环多对多关系

时间:2011-10-25 04:30:48

标签: iphone core-data ios5 entity-relationship

试图了解如何在Xcode 4.2中建模循环核心数据多对多关系。在SQL中,我将使用映射表并自定义我的SQL表达式以向我提供正确的数据,但在Core数据中,我似乎无法理解如何让他正常工作。 我有3个实体彼此相关:

  • 作用

我的链接是:

  • 部门可以有多个角色
  • 部门可以拥有多人
  • 许多部门都可以有角色
  • 角色可以分配给很多人
  • 一个人可以属于多个部门
  • 一个人可以成为许多角色的一部分

使用核心数据对其进行建模的最佳方法是什么?哪些是最合适的?你会在这3个之间使用映射表,还是只分配正确的关系?

任何帮助都会受到高度赞赏,因为我似乎无法解决这个问题....

编辑: 非常感谢您的快速反馈。 不幸的是,我不能上传我的数据模型,因为我是这个网站的新手,不允许发布任何图片。

要读取数据,我目前只使用这样的谓词:

predicate = [NSPredicate predicateWithFormat:@"personPartOfRoles == %@", myRole];

我似乎无法弄清楚如何维护此对象图以添加或删除角色中的人员。我假设我需要在内存中加载整个图形,并以某种方式只找到要映射的正确实体。

2 个答案:

答案 0 :(得分:3)

只需在实体中分配正确的关系。

如果您要使用Core Data,请务必忽略您在SQLite中存储的事实。存储只是一个幕后实现细节(因为coredata能够存储在XML或内存中),你可以忘记。

答案 1 :(得分:3)

部门<< --->>角色(部门角色)
部门<< --->>人(部门对人)
角色<< - >>人(对人的角色)

让每个关系都有一个反向。

请记住,Core Data是可以持久保存到数据库的对象图。像对象图一样对待它。