问题描述
|
我需要创建一个与自身具有一对多关系的Core Data实体(想一个包含子文件夹的文件夹:我需要访问某个文件夹的所有子文件夹以及任何子文件夹的父文件夹)。
没有标准的“核心数据”关系,而又没有辅助的一对多实体,有没有简便的方法?
我想我可以通过使用自己的关键字段轻松地完成“旧方法”,但是有没有一种简单的方法可以在Core Data中定义自动递增字段? (我可以使用基于时间的值,而不能使用自动递增的值,但是出于多种原因,我不喜欢这种解决方案)。
解决方法
核心数据没有字段。不要试图将Core Data视为过程性非对象API(例如SQL)的术语。您只会混淆自己。
在Core Data中创建嵌套关系很简单。要使实体建模目录结构,您需要做的是:
Folder{
name:string
parent<<-->Folder.children
children<-->>Folder.parent
}
任何特定的文件夹都有一个父级和多个子级。
不要将数据模型中的实体误认为是活动对象图。数据模型中的实体仅定义抽象属性和同等抽象实体的关系,并且可以非常简单。实际的实时图形与其建模的现象一样复杂。
例如。在这种情况下,数据模型将和上面的一样简单,一个实体具有一个属性,并且两个实体之间都具有两个关系。实时图将像它以数千个唯一的“ 1”对象和数百万个关系建模的文件系统一样复杂。