1

我正在为 Core Data 中的数据设计架构。我的问题:我有一个List对象。在我开始使用 Core Data 之前,我将它定义为 NSObject 的子类,但现在我正在使用 Core Data、NSManagedObject 等。我想知道是否应该分解我的 List 对象的组件,就像在这个介绍中一样核心数据教程。

本质上,一个List对象由一个

NSString uniqueID
NSString name
BOOL completed
BOOL notifyMe
NSDate notifyDate
NSDate creationDate

鉴于 NSManagedObject 强制您一次加载整个对象,这似乎是单个对象的大量数据。在对象之间建立一对一的关系是否有意义List,并说一个名为 的新对象ListDetailsList然后变成

NSString uniqueID
NSString name
BOOL completed

并且ListDetails

BOOL notifyMe
NSDate notifyDate
NSDate creationDate

提前感谢您的建议!

附加警告:

每个都与被调用List的 有一对多的关系。所以换句话说,目前我有两个, a和。如果我分解成两个组件(和),我的一对多关系是否仍然只是与?EntityListItemEntitiesListListItemListListListDetailsList

4

1 回答 1

1

除非您相当确定 name 或 uniqueID 会变得超长,否则即使有六个属性(尤其是当两个是BOOLs 时),内存占用也会非常小。

如果您发现需要获取大量列表实体但只需要几个属性的地方,您可以设置一个获取请求,将其返回类型设置为字典并指定您想要的属性。例如,您可以使用复合谓词获取所有不完整、需要通知和日期已过的实体,然后让它返回字典中的名称和唯一 ID。

如果您确实将其分解,那么List很可能是与 和 的关系的ListItem中心ListDetails

如果通知日期不是用户需要一直看到的,你也可以将它存储为NSTimeInterval比 NSDate 更轻的一个,并且很容易检查它是否已经过去。

于 2013-07-19T04:36:41.673 回答