核心数据继承与关系

亚帕

对于核心数据的继承和关系,我有点困惑,我希望有人可以驾车驶向正确的道路。在我的应用程序中,我创建了3个实体,但它们都没有(也不应该具有)公共属性,但是用户要做的所有工作都会有一个保存和加载按钮。根据我的理解,我需要将所有“工作”实体“包装”到一个用于保存和加载的对象中,我的问题是,是否需要在实体之间创建关系?因为我必须以某种方式联系他们,所以这对我来说很有意义。我的逻辑正确吗?

我正在安装一个预算计算器,为了让所有人了解我的问题,我将举一个实际的例子,如果我的逻辑不正确,请纠正我:

假设您是水果销售商,因此拥有客户数据库和包含您所售水果种类的水果数据库是正常的。根据我的理解,我在这里找到两个实体:

客户端与命名属性:nameaddressphoneemail,等。

股票与命名属性:nameweightstockcostsupplier,等。

TheBudget与命名属性:nameamounttypecostdelivery,等。

我没有列出所有属性,因为我认为您明白了。我的意思是,正如您所看到的,我只能继承两个属性。其余的是不同的。因此,如果我正在为客户制定预算,那么我可以拥有任意数量的客户以及所需的库存量,但是实际预算呢?

很抱歉,如果我的解释不是很清楚,但是如果是..我应该建立什么样的关系?我认为ClientTheBudget有联系。你对我有什么建议?

柔术编码器

这不是完全正确的,但是某些部分在正确的轨道上。我将您的问题分为三个部分:关系,继承和托管对象上下文,希望可以帮助您分别理解每个部分:

人际关系

关系通常用于表示一个实体可以“属于”另一个实体(即员工可以属于公司)。您可以设置多个一对多关系(即,雇员属于公司和老板),并且可以设置逆向关系(用“拥有”或“具有”一词更好地描述,例如“一个公司”有很多员工)。

根据您的需要,还有许多甚至更复杂的关系,您可以告诉系统在删除关系中的实体时要遵循的整套删除规则。刚开始时,我发现坚持上述一对一和一对多关系最容易。

遗产

最好将继承描述为一种基本模板,该模板可用于其他更具体的实体。您说对了,您可以使用继承作为一种协议来定义一些在多个实体之间通用的基本属性,这是正确的。一个很好的例子是拥有一个具有属性“名称”,“地址”和“开始日期”的“雇员”基类。然后,您可以创建从该Employee实体继承的其他实体,例如“ Marketing Rep”,“ HR”,“ Sales Rep”等,它们都具有共同的属性“名称”,“地址”和“开始日期”,而无需在每个单独的实体上创建这些属性。然后,如果您想更新模型并添加,删除或修改通用属性,

受管对象上下文(即保存)

现在,在问题/陈述的另一部分:将所有实体包装到一个对象中,该对象将用于保存和加载。您无需创建此对象,核心数据为此专门使用NSManagedObjectContext(简称MOC)。MOC的任务是跟踪您创建,删除和修改的对象。为了保存更改,您只需save:在MOC上调用该方法。

如果您发布您的实体及其作用,那么我也许可以就在核心数据中设置实体的方式提出建议。您希望尽最大的努力在初始开发过程中建立尽可能强大的核心数据模型。操作系统需要能够“升级”后备存储,以合并您在核心数据模型修订版之间进行的任何更改。如果您最初设置核心数据模型并以这种方式发布代码的工作做得很差,那么在应用程序泛滥的情况下尝试进行复杂的模型更新可能会非常困难(您可能已经猜到了,是从痛苦的经历中产生的建议:)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章