具有一对多关系的数据库应用程序有流浪对象



我有一个数据库应用程序的entityA <->>entityB。为了加载数据,两个实体都有不稳定视图。我的问题是我已经输入了数据的实体b的适用于实体a的,但当我加载数据库到我的iphone应用程序有一对实体b的出现没有任何相关的实体a的。我认为entityB's已添加没有entityA的选择,也许这就是为什么他们在iphone应用程序"浮动"。

的一些问题:有人经历过吗?有一种方法来防止这在我的钻取数据库应用程序?有没有一种方法来编码它,所以如果任何实体b没有关系的实体a然后删除它?

回答您的问题。

1。有人经历过吗?

当然,很多人都有过这样的经历。但是如果你对你写的代码很小心的话,这应该是不可能的。

2。有一种方法来防止这在我的钻取数据库应用程序?

当然

。只要确保有父实体,如果没有就创建一个。如果实体A存在,它只是一行代码。

newBEntity.a = existingAEntity;

3。有没有一种方法来编码它,所以如果任何实体b没有关系的实体a然后删除它?

理论上,是的,但这将是糟糕的代码设计。只需使用2中的过程。上面:创建B,如果没有A实体,扔掉它(例如,通过在托管对象上下文中调用rollback)。或者,如建议的那样,创建一个新的a实体。

你也可以(定期或在应用启动和关闭时)迭代所有B实体并删除孤立的实体,但这将是非常糟糕的数据设计。

确保你已经为你的关系指定了逆,以及适当的删除规则。

根据Apple文档,您应该为每个关系提供逆,即使您只打算在一个方向上使用它。如果做不到这一点,可能会导致您所描述的模型完整性失败。

最新更新