核心数据模型设计:在其他实体中使用单个复杂的实体或组同构属性?

时间:2014-03-05 07:42:09

标签: ios core-data database-design

我正在处理一个非常复杂的实体,该实体具有几个可以在某种“宏类别”中分组的同类属性。

为了极大地简化,我们只考虑两个宏类别的实体myCar:“财务属性”和“物理属性”:

财务属性:费用,转售价值,年度费用。

物理属性:高度,宽度,重量,颜色。

我有两种选择来模拟它:

选项1 :将所有属性存储在单个实体中:

单一实体: MyCar ,具有以下属性:

  • 成本
  • 转售价值
  • 年度开支
  • 高度
  • 宽度
  • 重量
  • 颜色

选项2 :使用三个实体和两个关系对其进行建模:

实体1: MyCar

  • 1对1关系1:财务
  • 1对1关系2:物理

实体2:财务

  • 成本
  • 转售价值
  • 年度开支
  • 1对1关系:myCar

实体3:实体

  • 高度
  • 宽度
  • 重量
  • 颜色
  • 1对1关系:myCar

到目前为止,我总是使用选项1,但考虑如何在Pad上显示数据,在UISplitViewController内部,左侧是主侧的“财务”和“物理”选项,详细信息侧的相关属性在右边,我想到了选项2.

使用核心数据对这个复杂实体进行建模的更好方法是什么?为什么呢?

1 个答案:

答案 0 :(得分:0)

选择应该是您随时需要的数据。如果您总是需要所有数据,那么使用多个实体几乎没有价值。但是,如果您有一个仅列出数据子集的主视图和列出所有数据的详细视图,那么根据该用法将数据分成不同的实体是非常有益的。当您滚动主列表并提高性能时,这会限制出现故障的数据量。

这并不意味着您也不应该设置获取请求批量,这也是滚动效果和平滑程度的一个重要因素......