核心数据关系设计?

时间:2011-11-03 10:11:45

标签: objective-c xcode core-data xcode4

我对您在Core Data中创建关系的方式有疑问。

我将用一个例子来解释:

假设我有3个实体。电机,泵和警告。

电机和泵可以发出警告。

警告实体将存储电机和泵的所有警告。

所以问题是......是否真的有必要在警告电机和泵中建立这么多关系?当我想添加另一个可以发送警告的实体时,我需要另一种关系。

这不是一个糟糕的设计吗?

希望我能理解。

感谢。

2 个答案:

答案 0 :(得分:2)

这是标准和良好做法。核心数据需要所有内容的反向关系来维护其对象图。 (嗯,从技术上讲,你不必添加它们,但是你必须自己做额外的工作)。

所以不要担心,经常使用的实体对它们有很多反向关系是正常的。

答案 1 :(得分:2)

是的,这很正常。更好,更结构化的方法是为Motor和Pump建立一个基础实体,让我们称之为Component。此Component实体与Warnings具有关系,警告实体与Component具有反向关系。

然后将Motor和Pump设置为Component实体的后代,一切都很好。组件和警告之间的单一关系/反向关系。