【问题标题】:How to make 1 to 1 relationship in CoreData如何在 CoreData 中建立 1 对 1 关系
【发布时间】:2020-03-06 15:24:55
【问题描述】:

我的项目中有 2 个实体。第一个是路由实体,第二个是地址。 路由有起始地址和结束地址。

Route:
Name
startingAddress
endingAddress

Address:
street
streetNumber
country

关系应该是1对1。一个路由有一个起始地址,一个起始地址有一个路由。问题是我也使用了属性endingAddress,这也导致了Address。我已经创建了从 Route(startingAddress) 到 Address 的第一个关系,但我无法创建第二个关系,因为该名称已被使用。

如何在这两者之间建立关系?我应该只创建具有不同名称的可选关系吗?

【问题讨论】:

  • 这个名字已经被使用是什么意思?在 2 个实体之间创建 2 个关系应该没有问题。
  • @JoakimDanielson 我在我的地址实体中创建了与名称“路由”的关系。目的地是路由实体,但我也需要为 endAddress 创建第二个。我不能对关系使用相同的名称,也不想使用“可选值”。使用选项地址实体将与开始或结束地址有关系。
  • 所以称它为不同的东西,例如 routeStart 和 routeEnd。
  • 是的,但是我将不得不处理可选的关系。我不想用这个。
  • 我刚刚在 Xcode 中尝试过,但我不明白您声称必须是可选的。这没有任何意义。

标签: ios swift core-data


【解决方案1】:

您的问题是地址上的起始地址和结束地址没有反比关系。最好将 Address(路由)建模为 Route(地址)的多对一,然后对地址进行排序并使用数组 first 和 last 属性来确定起始地址和结束地址。

【讨论】:

  • 我已经想过这个想法,但我想坚持一对一的关系。
猜你喜欢
  • 2019-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多