我在我的应用中使用Core Data,我有很多“类别”的数据。有些较小,有些较大,我想将一些类别划分为不同的实体 所以我想问,如果使用多个实体有任何优势或不利因素,即使不是强制性的,如果我还应该为较小的“类别”数据创建一个实体?谢谢!
答案 0 :(得分:0)
以下是我使用的规则:
如果将数据合并到具有属性的实体本身不会导致过度重复数据,我会更喜欢添加属性而不是新实体。
这是一个微妙的权衡,你必须考虑
如果您在上述指导下仔细考虑这些因素,我相信您可以在何时创建新实体而不是使用属性时做出明智的决定。
例如,如果您有Story
这样的实体具有title
,text
,date
等属性,并希望添加类别,在大多数情况下,创建与Category
实体的to-one或甚至to-many关系而不是使用string属性是有意义的。据推测,将有数百个故事和数十个类别,并且具有多个类别的灵活性是一个明确的优势。
另一方面,如果你有一个实体Story
,它总是不超过三种类型之一,即“报告”,“分析”或“意见”,你最好用{ {1}}属性类型,而不是与新实体的关系。
答案 1 :(得分:-1)
我并不过分确定你的类别是什么意思,但实际上,实体越大,当你将实体加载到NSManagedObjectContext时你的应用程序占用的内存就越多。然而,无论如何,当你只是加载它们时,没有真正的点将实体分成两部分。
在性能方面,Core Data文档提到即使是10,000个对象也是一个非常小的数据库。小心BLOB,不要将你不需要的数据加载到内存中,并在使用NSManagedObjectContext的reset方法时释放数据。