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