ios - 这种模式适合核心数据吗?

标签 ios core-data database-design

我以前使用过的唯一数据库是 MySQL,所以 CoreData 的数据库设计让我有点困惑。

简而言之,该设计包含人与企业之间的多对多关系。许多人可以拥有一家企业。一个人可以拥有许多企业。

在这个简化的设计中,有 3 个表:

PERSON       BUSINESS      OWNED BUSINESS
------       --------      --------------
id           id            personID
name         name          businessID
email        website       acquisitionDate

OwnedBusiness 表让我感到困惑。在 MySQL 中,此表用于支持多对多关系。我知道 CoreData 不需要这个,但是我在 OwnedBusiness 中有一个额外的字段:acquisitionDate


额外字段 acquisitionDate 是否保证使用额外实体/表?如果不是,那个字段会去哪里?

最佳答案

首先,Core Data 不是数据库,句号。

Core Data 是一个对象图管理框架,是您应用程序中的模型。

可以持久保存到数据库中的磁盘。它还可以作为二进制、XML 和几乎任何其他内容保存。它甚至不需要持续存在。

仅将 Core Data 视为对象图。在您的示例中,您将拥有一个 Person 实体、一个 Business 实体和一个 OwnedBusiness 实体。

OwnedBusiness 实体将具有两个关系和一个属性。您不会管理外键,因为 Core Data 会处理如果您最终持久化到数据库。否则它们是对象指针。

关于ios - 这种模式适合核心数据吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30055951/

相关文章:

ios - 一个 iOS 应用的不同 App Store 发布者可以在不同地区发布同一个名称的同一个应用吗?

objective-c - GLubyte/GLushort 使用问题

javascript - 覆盖 "Safari cannot open the page because the address is invalid"

ios - 在 CoreData 模型中存储 (long long)

ios - Objective-C + Swift with CoreData - 无法将 'EntityName' 的值类型分配给类型 'EntityName!'

swift : '+entityForName: nil is not a legal NSManagedObjectContext parameter searching for entity name ' 测试''

Mysql:不同实体的单独或公共(public)关系表

git - 在 Go 语言中编写可靠的数据存储

sql - 在数据库中存储性别(性别)

ios - 导航栏 "Cancel"