我正在为Core Data中的数据设计架构。我的问题:我有一个List
对象。在我开始使用Core Data之前,我将它定义为NSObject的子类,但现在我正在使用Core Data,NSManagedObject等。我想知道我是否应该拆分List对象的组件,就像在这个{ {3}}到核心数据。
基本上,List
对象由
NSString uniqueID
NSString name
BOOL completed
BOOL notifyMe
NSDate notifyDate
NSDate creationDate
对于单个对象,这似乎是很多数据,因为NSManagedObject会强制您同时加载整个对象。在List
对象之间建立一对一关系,并说一个名为ListDetails
的新对象,其中List
变为
NSString uniqueID
NSString name
BOOL completed
和ListDetails
是
BOOL notifyMe
NSDate notifyDate
NSDate creationDate
提前感谢您的建议!
补充警告:
每个List
也与名为Entity
的{{1}}建立一对多的关系。换句话说,目前我有两个ListItem
,一个Entities
和List
。如果我将ListItem
分解为两个组件(List
和List
),我的一对多关系是否仍然只与ListDetails
有关?
答案 0 :(得分:1)
除非您非常确定名称或唯一ID将变得超长,否则即使有六个属性(特别是两个BOOL
s),内存占用量也会非常小。
如果您找到需要抓取大量List实体但只需要几个属性的地方,您可以设置一个获取请求,将其返回类型设置为字典并指定所需的属性。例如,您可以获取所有不完整的实体,需要通知并且日期已经过复合谓词,并且只需要在字典中返回名称和唯一ID。
如果你确实分手了,那么List
可能会成为与ListItem
和ListDetails
有关系的中心。
如果通知日期不是用户需要一直看到的东西,你也可以将它存储为NSTimeInterval
,它比NSDate轻一点,并且很容易检查它是否已经过了。< / p>