gpt4 book ai didi

iphone - 关于核心数据模型关系

转载 作者:行者123 更新时间:2023-11-29 13:34:26 24 4
gpt4 key购买 nike

我正在尝试理解 CoreData 建模中的关系概念,并且它越来越难以理解什么实体可以很好地理解关系。有没有办法为可以对应于另一个实体的关系生成唯一编号?所以假设我有一个新的实体条目,它将有一个唯一的数字 101 用于关系信息,并且详细信息也将创建 101,因此可以以某种方式保持完整的对应关系。不确定 CoreData 模型是否已将其整理出来以使用某种生成器为两个实体生成唯一值。

谢谢

最佳答案

Core Data 是一个高级库,其目的是尽可能透明地管理和持久化对象图。 Core Data 如何链接数据库中的对象(顺便说一下,这不一定是数据库)是一个实现细节。

在模型编辑器中,您只需创建所需的实体并将它们与关系链接起来。 Core Data 为您管理连接。

Person:
- first_name: string
- middle_name: string
- last_name: string
- private_address: -> Address (to-one relationship)
- work_address: -> Address (to-one relationship)

Address:
- persons: ->> Person (to-many relationship, you may want to reuse an address)
- address1: string
- address2: string
- zip: string
- city: string
- country: string
...

person.first_name 返回此人的名字,person.private_address.city 返回此人的居住城市。 address.persons 返回共享相同地址(私有(private)或/和工作)的所有人作为 NSSet。 address.persons.count 返回共享该地址的人数。您看到的是一个对象图。

Core Data 为每个实体提供某种唯一 ID,一旦实体至少被保存,objectID,一个不透明的 NSManagedObjectID。 URIRepresentation 可能会更好地为您服务(同样,一旦实体被保存)。如果您打算创建跨商店关系,则可以使用 URIRepresentation 或使用您自己的唯一 ID。维护每个实体的唯一 ID 甚至每个商店的唯一 ID 都相当容易。

但大多数时候,您不必处理这种低级别的问题。 Core Data 非常擅长为您管理关系。

关于iphone - 关于核心数据模型关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10974380/

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