4

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

每个都是区域表的外键。这在 SQL 中运行良好。但是当迁移到 Core Data 时,我无法理解如何对其进行建模。

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

我的问题是如何处理 startZone 和 endZone 关系属性的反向关系。我不需要它们吗?在我读过的关于这个主题的文档和书籍中,最好总是使用反比关系,但我想知道这种特殊情况是否不适用。或者我只是在 Core Data 中错误地建模。

感谢您的任何建议。

麦克风

4

3 回答 3

3

您可以在指向 TransitLog 的 Zone 实体中拥有两个独立的多对多关系,称为startLogsendLogs。这些将分别是startZone和的倒数endZone

于 2011-01-26T21:24:17.893 回答
2

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

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

于 2011-01-29T01:14:40.573 回答
1

谢谢大家 - 两个答案都有很大帮助。Westsider 是对的,我目前不需要从区域遍历到 TransitLogs,这就是我想知道的原因。但话虽如此,我想我可能在某个时候需要它们(希望有成千上万的用户要求它;))所以现在可能更好地对其进行建模。

再次感谢您的回答。

于 2011-01-28T12:16:04.517 回答