2012-05-15 20 views
0

假设我有一个名为EntityA的实体。 EntityA与EntityBEntityC有关系。 EntityB和EntityC都不是强制关系,但其中一个必须选择。核心数据 - 可以建模OR关系

是否可以在核心数据中对此进行建模?

回答

1

如果EntityB和EntityC有一个共同的超级类,那么您可以拥有该类型的所需关系。

这就是说,我听说它说你应该远离核心数据中的类层次结构。

YMMV

+0

确实有用。所以这是实现这一目标的唯一方法? –

+0

您也可以在EntityA上有两个关系,并重写'validateForUpdate:'和'validateForInsert:',您可以在其中进行自己的关系检查。 –

0

您可以对模型对象有任何种类的自定义约束。我想这就是你问的问题?

检查Core Data文档中的受管对象验证文档。你正在寻找的是物业间验证。您可以实施用于更新,插入和删除的自定义-validateFor…方法。在你的情况下,你会检查与实体B的关系或与实体C的关系。

有一个共同的超级实体混淆这些实体的数据存储到磁盘的方式 - 这可能不是你想要的。

+0

它以什么方式“混淆”这些实体的数据如何存储在磁盘上? –