何时在Swift中使用核心数据关系?

时间:2016-08-28 20:53:32

标签: swift core-data

我已尽最大努力阅读了大量教程,但我仍然难以理解如何处理当前的应用程序。我无法理解它。

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

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

  • 员工

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

    • 公司名称
    • 公司名称
    • 部门名称

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

我需要存储这些数据,以便它持续存在。我选择了Core Data来做这件事(我假设这是正确的举动),但我不知道如何在这个实例中构建模型。我应该补充一点,我对数据库非常陌生。

这引出了一些问题:

  1. 我在网上看到的每个例子都使用关系,以便在删除对象时可以适当地更新信息 - 这不是这里的情况,因为这是只读的。那么我甚至需要这种情况的关系吗?这三组对象显然是相关的,所以我只是假设我应该这样构造它。如果仍建议创建关系,那么在只读应用程序中创建这些关系会获得什么? (例如,它是否使搜索我的数据更容易和更清洁等等。)
  2. 我看过的教程似乎没有所有这些冗余数据。如您所见,"公司名称"在每组对象中显示为属性。如果建议我在我的实体(员工,公司,部门)之间建立关系,有人可以告诉我这个应该的样子,以便我可以知道该怎么做? (这当然是假设我应该在我的模型中使用关系。)
  3. 我想这会是一套规则:

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

    如果我在这里走在正确的轨道上,请告诉我。如果你需要澄清,我会尽我所能。

1 个答案:

答案 0 :(得分:0)

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

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

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