ios - 核心数据 : How to structure a data model with a parent entity

标签 ios core-data entity parent-child

我是一个长期的倾听者,但第一次来这里…希望你能帮我解决一个核心数据问题!

我正在为 iPad 创建一个自定义业务应用程序,允许用户填写他们业务中常用的契约(Contract)。有四个契约(Contract),每个契约(Contract)有 20 到 40 个数据字段,它们完全不同,但有几个 (3-4) 个字段是所有四个共有的,例如创建日期和供应商名称等。

我需要在 UITableView 中一起显示所有契约(Contract)(分组样式以显示不同类型),我需要能够选择一个单元格并显示详细信息 View ,以便用户可以查看和修改数据具体契约(Contract)。

我迄今为止的研究告诉我,我应该使用一个父实体(实体 A)列出所有共有的属性,然后使用子实体(实体 B、C、D 和 E,代表四个契约(Contract)中的每一个)具有它们独有的属性,并从实体 A 继承其余属性。

这是构建此数据模型的最佳方式吗?请记住,当我创建契约(Contract)的新实例时,它需要是一个独立的对象,具有其所有属性以及父对象的属性。如果是这样,当我为我的 tableView 生成单元格时,我是获取实体 A 并希望其余的也一起出现,还是我为每个契约(Contract)类型单独获取请求并以这种方式添加到表中?相反,如果我想创建一个新的契约(Contract)实例(比如我的数据模型中的实体 B),我该怎么做?

我希望我已经解释得够清楚了。感谢您对此的帮助!

最佳答案

您应该使用您的公共(public)字段创建一个抽象实体,并从那里继承您的不同契约(Contract)类型。来自documentation :

In a model, entities may be arranged in an inheritance hierarchy, and entities may be specified as abstract.

这还将使您能够为所有合约定义通用行为,并在代码中使用抽象父类(super class)来引用任何合约。

关于ios - 核心数据 : How to structure a data model with a parent entity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7959569/

相关文章:

c# - Entity Framework 4.1 InverseProperty 属性和 ForeignKey

hibernate - spring + hibernate - 将实体映射到不同的数据源

doctrine-orm - 如何在 Doctrine2 中为单个实体使用多个存储库?

iphone - 让 AVFoundation 不停止 iPod 音乐

ios - 删除特定 pod 中已弃用的 iOS 框架警告

ios - 核心数据 - 如何通过一个属性获取所有相关对象

iOS 应用内购买内容集成

iphone - 在我的 IOS 应用程序中集成 Tumblr API

iphone - 为 NSManagedObject 的属性设置值后保存时 CoreData 崩溃

objective-c - 如何创建源列表以显示 Core Data To Many 关系?