gpt4 book ai didi

ios - CoreData 中的关系如何保存到持久存储中?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:45:20 26 4
gpt4 key购买 nike

将 CoreData 与 UIManagedDocument 结合使用,持久存储是文档中保存文件路径中的 SQLite 数据库。我读到 CoreData 会生成自己的主键(整数值)。

我有两个关于 CoreData 中关系的问题:

  1. 由于 CoreData 是一个面向对象的关系数据库,我想知道实体中对象之间的关系是如何保存的? CoreData 是否使用外键(例如实体一使用实体二的主键作为外键)?
  2. 如何将关系保存到持久性存储文档中?例如,如果您保存 NSString 或 NSDictionary(到二进制数据),您可以在打开持久存储文档时看到这些对象。

最佳答案

这取决于。

对于一对一关系,目标实体的主键作为外键存储在实体的表(行)中。

对于多对多关系,会创建一个单独的连接表来存储源实体和目标实体的主键。

FWIW 这很容易通过从命令行使用 sqlite3 来探索。

$ sqlite3 cd.sqlite
$ (SQLite) .schema

这将揭示您的一对多关系的连接表,您将能够看到您的一对一关系的外键列。

数据/字符串列也是如此。 SQLite 允许数据和字符串(varchar)存储。

关于ios - CoreData 中的关系如何保存到持久存储中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14643930/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com