CoreData模型设计:过度使用NSFetchRequest是设计不良模型的症状吗?

Ben*_*hen 5 cocoa core-data data-modeling

可以使用NSFetchRequest图中其他对象的关系或跟随关系来检索核心数据对象.可以公平地说,在一个设计良好的模型中,它将包含足够的关系(和获取的属性),以便将使用NSFetchRequests保持在最低限度吗?

反驳的论点是在iOS中存在NSFetchedRequestController.据推测,如果Apple认为关系和获取的属性在现有的错误/缓存中提供了令人满意的性能,那么他们就不会创建NSFetchedRequestController.

有些情况下使用的NSFetchRequest是优越的,因为Core Data可以在SQLite中完成所有工作.一个例子是获取聚合值.

有什么想法吗?我看过核心数据编程指南.在"获取托管对象"和"核心数据性能"部分中有相关建议,但没有强烈建议关于提取请求的关系,反之亦然.

Tec*_*Zen 0

一般的经验法则是,数据模型越简单,获取效果越好,而数据模型越复杂,关系效果越好。

例如,如果您的数据模型具有没有关系的单个实体,那么获取将最有效地查找隔离的托管对象。如果您有一个包含十几个实体的数据模型,所有实体都具有两个或多个关系,那么您将大量使用关系。