Ios 在核心数据中使用多个实体的优势

Ios 在核心数据中使用多个实体的优势,ios,objective-c,core-data,swift,entity,Ios,Objective C,Core Data,Swift,Entity,我在我的应用程序中使用核心数据,我有许多“类别”的数据。有些更小,有些更大,我想将一些类别划分为不同的实体。 所以我想问,即使不是强制性的,使用多个实体是否有任何优点或缺点,以及我是否应该为较小的数据“类别”创建一个实体?谢谢 我不太清楚您所说的类别是什么意思,但很明显,当您将实体加载到NSManagedObjectContext中时,实体越大,应用程序占用的内存就越多。然而,当你无论如何都要加载实体的时候,把它们一分为二是没有实际意义的 在性能方面,核心数据文档提到,即使10000个对象也是一

我在我的应用程序中使用核心数据,我有许多“类别”的数据。有些更小,有些更大,我想将一些类别划分为不同的实体。

所以我想问,即使不是强制性的,使用多个实体是否有任何优点或缺点,以及我是否应该为较小的数据“类别”创建一个实体?谢谢

我不太清楚您所说的类别是什么意思,但很明显,当您将实体加载到NSManagedObjectContext中时,实体越大,应用程序占用的内存就越多。然而,当你无论如何都要加载实体的时候,把它们一分为二是没有实际意义的


在性能方面,核心数据文档提到,即使10000个对象也是一个相当小的数据库。只需小心处理BLOB,不要将不需要的数据加载到内存中,并在可以使用NSManagedObjectContext的重置方法时释放数据

以下是我使用的规则:

如果将数据与属性合并到实体本身不会导致过度重复的数据,我宁愿添加属性,而不是新实体

这是一个你必须考虑的微妙的权衡

  • 演出
  • 数据模型的复杂性
  • 代码易读性
如果你在上面的指导中仔细考虑这些因素,我确信你可以在什么时候创建新的实体而不是使用属性做出正确的决定。 例如,如果您有一个类似于
故事
的实体,该实体具有类似于
标题
文本
日期
等属性,并且希望添加一个类别,那么在大多数情况下,创建与
类别
实体的一对一甚至对多关系是有意义的,而不是使用字符串属性。据推测,将有数百个故事和几十个类别,拥有多个类别的灵活性是一个明确的优势

另一方面,如果您有一个实体
Story
,它总是不超过三种类型中的一种,即“报告”、“分析”或“意见”,您最好使用
enum
类型的属性,而不是与新实体的关系