核心数据与同一实体的多重关系

时间:2011-01-26 21:18:50

标签: iphone core-data relationships

我有一个数据模型,我试图从基于SQLite的表结构移植到Core Data模型。我的SQLite结构有一个Zones表和一个TransitLogs表。 TransitLog可以有以下内容(在我的sqlite架构中) start_zone_id end_zone_id

每个都是区域表的外键。这在SQL中运行良好。但是当转向核心数据时,我无法理解如何对此进行建模。

我的第一次尝试让我在我的TransitLog实体中有两个关系,其中startZone和endZone关系属性指向一个区域(抱歉无法发布xcode的屏幕截图,因为这是我的第一篇帖子)

我的问题是如何处理startZone和endZone关系属性的反向关系。我不需要它们吗?在我读过的关于这个主题的文档和书籍中,最好始终使用反向关系,但如果它不适用,我对这种特殊情况感到疑惑。或者我只是在核心数据中错误地对此进行建模。

感谢您的任何建议。

麦克

3 个答案:

答案 0 :(得分:3)

您可以在区域实体中有两个单独的多对多关系,指向TransitLog,称为startLogsendLogs。这些将分别是startZoneendZone的反转。

答案 1 :(得分:2)

非平凡的模型版本控制和迁移可以是一个实时的接收器 - 尤其是第一次。出于这个原因,以及Apple建议使用它们,我建议添加反向关系。

那就是说,我发现至少有一种情况,即添加反向关系根本没有意义 - 一切正常。但在那种情况下,现在(并且仍然)极难找到反向关系永远有用或必要的场景。

答案 2 :(得分:1)

谢谢你们 - 两个答案都有很大帮助。 Westsider是对的我目前没有必要从区域到TransitLogs,这也是我想知道的原因。但话虽如此,我想有可能在某些时候我可能需要它们(成千上万的用户希望它可能会吵着;))所以最好现在对它进行建模。

再次感谢您的回答。