何时在 Swift 中使用 Core Data 关系?

Posted

技术标签:

【中文标题】何时在 Swift 中使用 Core Data 关系?【英文标题】:When to use Core Data relationships in Swift? 【发布时间】:2016-08-28 20:53:31 【问题描述】:

我已尽我所能阅读了一堆教程,但我仍然不知道如何处理我当前的应用程序。我就是不能理解。

我的应用程序只是一个只读目录,按公司、部门或字母顺序列出员工。

我正在以以下形式拉取 JSON 数据:

员工

公司名称 部门名称 名字 姓氏 职称 电话号码

公司

公司名称

部门

公司名称 部门名称

如您所见,这里的信息非常多余。我无法控制 API,它将保持这种结构。我还要补充一点,不是每个员工都有部门,也不是每个公司都有部门。

我需要存储这些数据,以便它持续存在。我选择了 Core Data 来执行此操作(我假设这是正确的举动),但我不知道如何在这种情况下构建模型。我应该补充一点,我对数据库很陌生。

这引出了一些问题:

    我在网上看到的每个示例都使用关系,以便在删除对象时可以适当地更新信息 - 这里不会出现这种情况,因为这是只读的。那么我什至需要这种情况下的关系吗?这 3 组对象显然是相关的,所以我只是假设我应该这样构造它。如果仍然建议创建关系,那么在只读应用程序中创建这些关系有什么好处? (例如,它是否让我的数据搜索更轻松、更清晰?等等) 我看过的教程似乎没有所有这些冗余数据。如您所见,“公司名称”作为属性出现在每组对象中。如果有人建议我在我的实体(员工、公司、部门)之间建立关系,有人可以告诉我这个应该的样子,以便我知道该怎么做吗? (这当然是假设我应该在我的模型中使用关系。)

我想这将是一套规则:

每家公司都有很多部门或没有部门 每个部门有 1 名或多名员工 每位员工拥有 1 个公司和 1 个(或没有)部门

如果我在正确的轨道上,请告诉我。如果您需要澄清,我会尽力而为。

【问题讨论】:

【参考方案1】:

是的,使用关系。使它们成为双向的。

Feed 中的冗余信息无关紧要,请忽略它。如果您收到部分数据,它可用于建立关系,但您不需要使用它。

您说这些数据来自 API,因此就应用而言,它不是只读的。在设计数据模型时,更多地关注您将如何使用应用程序中的数据,而不是如何从服务器获取数据。

【讨论】:

以上是关于何时在 Swift 中使用 Core Data 关系?的主要内容,如果未能解决你的问题,请参考以下文章

何时版本化 Core Data 模型

可以在 Swift Playground 中使用 Core Data 吗?

如何使用 Swift 在 Core Data 中组合属性?

如何在 Core Data 中使用 swift 4 Codable?

如何在 Core Data 中使用 swift 4 Codable?

如何在 Core Data 中使用 swift 4 Codable?