我正在创建一个应用程序,并尝试使用Core Data,因为它似乎是创建数据存储系统的Objective-C认可方式。我有一个使用“多对多”关系的用例,就像您通常在标准SQL系统中看到的那样。我知道Objective-C不是数据库,工作方式也不同。我已经阅读了这里的文档:http://developer.apple.com/library/ios/#documentation/cocoa/conceptual/CoreData/Articles/cdRelationships.html#//apple_ref/doc/uid/TP40001857-SW10和其他几个地方。但是,我仍然遇到问题。有人能解释一下如果您需要使用SQL交叉引用表的用例会怎么做吗?例如:
经理 | 员工
经理可能有几个员工,但员工也可能有几个经理。在SQL中,我会创建一个交叉引用表,然后使用它。
例如: http://www.tomjewett.com/dbdesign/dbdesign.php?page=manymany.php 有人能解释一下如何在Core Data中实现这个功能吗?
根据Core Data文档,他们说:
“您可以使用两个一对多关系定义多对多关系。第一个一对多关系从第一个实体到第二个实体。第二个一对多关系从第二个实体到第一个实体。然后,您将每个关系设置为另一个关系的反向关系。(如果您具有数据库管理背景,并且这使您感到担忧,请不用担心:如果使用SQLite存储,则Core Data会自动为您创建中间联接表。)”
但是,除了“不用担心”之外,我不知道这怎么可能行得通?
经理 | 员工
经理可能有几个员工,但员工也可能有几个经理。在SQL中,我会创建一个交叉引用表,然后使用它。
例如: http://www.tomjewett.com/dbdesign/dbdesign.php?page=manymany.php 有人能解释一下如何在Core Data中实现这个功能吗?
根据Core Data文档,他们说:
“您可以使用两个一对多关系定义多对多关系。第一个一对多关系从第一个实体到第二个实体。第二个一对多关系从第二个实体到第一个实体。然后,您将每个关系设置为另一个关系的反向关系。(如果您具有数据库管理背景,并且这使您感到担忧,请不用担心:如果使用SQLite存储,则Core Data会自动为您创建中间联接表。)”
但是,除了“不用担心”之外,我不知道这怎么可能行得通?