使用 Swift 和 Core Data 的多对多附加数据
Posted
技术标签:
【中文标题】使用 Swift 和 Core Data 的多对多附加数据【英文标题】:Many To Many with additional data using Swift and Core Data 【发布时间】:2018-01-21 12:30:10 【问题描述】:我用 SQL Server 做了很多应用程序(两层应用程序),这是我在 ios 中的第一个具有核心数据的应用程序。
我试图弄清楚如何与其他数据建立多对多关系。让我用一个简单的例子来解释一下:
第一个实体称为 List(引用产品列表),它有一个属性 listName。
第二个实体称为产品(指产品),它有一个属性productname。
每个“产品”可以在多个“列表”中,每个“列表”包含多个“产品”。
Data Model
Xcode 已经自动创建了连接表:
SQLLITE
我现在的问题是我不知道如何为这个连接表添加一个“数量”列。我的主要目的是说:
在列表 1 中,我有 4 个产品 1
在 list2 我有 3 product1
在 list2 我有 4 个 product2
...
在 SQL Server 中太简单了,因为我自己创建了这个连接表并添加了其他数据,但我不知道如何在核心数据中做同样的事情。
【问题讨论】:
使用中间实体(即显式连接表)。例如,请参阅here。 谢谢。很清楚。 【参考方案1】:如果您使用Many-2-Many(没有任何附加属性),Core Data 会隐藏关联表。这意味着,以相反的方式,您需要自己创建一个相关表。你可以这样做,如果你在 Core Data 中创建一个新实体,它应该与其他两个实体具有 2-One 关系。
没有额外的属性:
Entity1 Entity2(关联表是隐藏的,但存在)
带有额外属性:
Entity1 Entity2
【讨论】:
这意味着创建多对多关系的传统方式在核心数据中仍然有效。让我感到困惑的是关于自动处理连接表的 Apple 文档。 是的,它会自动处理连接表,但前提是没有额外的属性。以上是关于使用 Swift 和 Core Data 的多对多附加数据的主要内容,如果未能解决你的问题,请参考以下文章