我以前使用过的唯一数据库是 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/