【问题标题】:Core Data Model Design: use a single complex Entity or group homogeneous attributes in other entities?核心数据模型设计:在其他实体中使用单个复杂实体或组同质属性?
【发布时间】:2014-03-06 07:10:46
【问题描述】:

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

为了极其简化,让我们考虑一个实体 myCar,它只有两个宏类别:“财务属性”和“物理属性”:

财务属性:成本、转售价值、年度费用。

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

我有两种建模方式:

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

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

  • 费用
  • 转售价值
  • 年费
  • 身高
  • 宽度
  • 重量
  • 颜色

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

实体 1:MyCar

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

实体 2:财务

  • 费用
  • 转售价值
  • 年费
  • 1 对 1 关系:myCar

实体 3:物理

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

到目前为止,我一直使用选项 1,但考虑如何将数据显示在 Pad 上,在 UISplitViewController 内,左侧主侧有“财务”和“物理”选项,细节侧有相关属性在右边,我想到了选项2。

用 Core Data 为这个复杂的实体建模的更好方法是什么?为什么?

【问题讨论】:

    标签: ios core-data database-design


    【解决方案1】:

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

    这并不意味着您不应该同时设置获取请求批次数量,这也是影响滚动效果和流畅程度的重要因素...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多