核心数据实体与规则的关系

时间:2012-02-01 19:57:17

标签: iphone objective-c ios xcode core-data

为了理解大量的核心数据,我正在努力开发各种可能的场景来开发可扩展的模型,以某种方式确保未来..

其中我有一个情况,有很多方法可以做到,我正在寻找一种最有效的方式。

我在做什么:

ControllerEntity {
title:String;
关系:家长(to-many)
}

ParentEntity {
title:String;
关系:孩子(to-many)
关系:控制器(to-one)

}

ChildEntity {
价值:NSNumber;
关系:父母(to-one; inverse)
}

现在请考虑这些随机公式..

A (parentEntity) =  Alpha (child) + Beta (child) + Gamma (child)
B (parentEntity) =  Pi (child)    + Gamma (child) + Beta (child)

将A和B作为父对象并添加这些对象与它们各自的子集完全没有问题,
值得注意的是,Beta子节点存在于两个父实体中。

继续改变:

Gamma (child) = [Alpha (child) + Beta (child)] / 2

两个实体中的Alpha和Beta子对象都是相同的,因此只能是一个!

将Gamma作为父母广告并将这两个作为他们的孩子和计算添加起来似乎相当容易。但是(虽然这是一个简单的方法)对未来的证明并不好..太多的物品总是一个坏主意..

因此,我想找到一个ChildEntity会有的关系......有点自己(如果可以的话)。例如, Gamma 实体会自动从 Alpha 子元素和 Beta 子元素中获取其值。

所有这些关系都应满足某些条件:

  1. 一个控制器对象只能有 Child 对象的一个​​“ TYPE ”。可以有许多对象。例如,如果Controller已创建父 A ,则当同一控制器创建父时,他可以添加 Alpha Beta Child B ,他可以添加New Pi孩子但不是Beta,因为它已经存在,他应该“选择”它..我可以为每个孩子添加一些独特的标识符。如何设置规则以在NewInsert上完成此操作。
  2. 孩子怎么能与自己建立关系?以这样一种方式:
    • 家长应该有一个 Gamma 孩子哪个实习生根据来自Child Alpha和CHild Beta的值计算其值,这也是每个控制器的唯一值。
  3. 继承人我创建的模型,但我真的不知道如何添加一个 Child(alpha)和CHild(Beta)是Child Gamma的子孙!
  4. 当Quering ParentA.childs只显示3个子对象时 - Alpha,Beta,Gamma。
  5. ParentB.Childs应该显示--->> Pi,Gamma,Beta,(3个对象)。
  6. 如果我选择透露所有未成为子女的父母的孩子,
    • 父母A应该只有2 - Alpha和Beta
      • 父B应该有3 - > Pi,Alpha,Beta。
  7. 最后,当我决定将这些数据导出或转换为xml时,它不应该让人感到困惑。

  8. enter image description here

    作为核心数据的新手,我发现很难从sqlite中思考,但我正在努力。

    感谢任何帮助

0 个答案:

没有答案
相关问题