mysql - 核心数据关系可以有属性吗

标签 mysql macos core-data swift3

我正在将 MySQL 数据库移植到 Mac OS 应用程序的 Core Data。我的数据库中有两个多对多表。除了包含外键之外,还有一些数据列。是否可以向 Core Data 中的多对多关系添加属性?在我看来不像。我的后备方案是在 Core Data 中复制链接表。这样做有什么问题吗?

一个例子: 一张唱片有一位或多位艺术家在上面表演。 一位艺术家在零个或多个记录上表演。 链接表行包含记录的外键、艺术家的外键、演奏者演奏的乐器,以及添加附加信息的注释列,例如艺术家演奏的轨道。

最佳答案

你是对的:关系本身不能有属性。您在将链接表建模为中间实体方面走在正确的轨道上。 CoreData Programming Guide 中提到了这种方法关于“基于语义建模关系”的部分。在他们的案例中,他们使用具有 ranking 的中间 FriendsInfo 实体对从 PersonPerson 的(自反)多对多关系建模 属性。

在您的示例中,您可能有一个 Record 实体、一个 Artist 实体和一个中间 Appearance 实体。 Appearance 实体将具有 Instruments 和 Notes 的属性,以及与 RecordArtist 的(一对一)关系(每个都有一对多逆)。

轻微的缺点是您必须创建 Appearance 对象才能链接 Record 对象和 Artist 对象,而不是只需将它们添加到相关关系中即可。您还必须注意 Record/Artist 组合的唯一性,如果这对您很重要:默认情况下可能有很多 Appearances对于相同的 RecordArtist

关于mysql - 核心数据关系可以有属性吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41499924/

相关文章:

php - Mysql 已正确配置远程连接,但 php 代码连接失败?

Mysql - 是否有更好的方法从具有相同 ID 的两个表中检索数据?

java - 在 Cucumber 中,如何传递文件路径的位置以使其适用于 Windows 和 MAC

c++ - 在 Xcode 中使用 IBPP

objective-c - 如何在核心数据中表示外键关系 - XCode 中的数据模型

core-data - 带有从核心数据中获取的部分的 SwiftUI 列表

php - mysql_insert_id 使用安全吗?

php - 从 WordPress 中的自定义表返回变量(从 URL 检索后)

Python 程序 Airnef 在下载图像时卡住了

ios - 使用 CoreData 托管对象进行依赖注入(inject)的推荐方法?