Ios 基于映像的核心数据模型关系是否正确?

Ios 基于映像的核心数据模型关系是否正确?,ios,sql,objective-c,core-data,ios7,Ios,Sql,Objective C,Core Data,Ios7,订单可以包含许多与该订单关联的采购项目 当用户希望在我的应用程序中查看订单历史视图控制器时,我希望能够选择所有订单及其关联的订单行 我有自动取款机,对吗?请注意正确的信息窗格,以便您可以查看该关系属性的设置 问题1. 选择订单时,我的关系是否正确,以便能够检索所有订单行,或者我是否需要执行两个查询,一个用于检索所有订单,另一个用于检索所有订单行,然后根据与之关联的订单行组合它们。这就是我在后端SQL设置中所做的,但我希望核心数据能够以更好的方式获取行 问题2。用户应该能够删除任何订单行,而不会

订单
可以包含许多与该订单关联的采购项目

当用户希望在我的应用程序中查看
订单历史视图控制器时,我希望能够选择所有订单及其关联的订单行

我有自动取款机,对吗?请注意正确的信息窗格,以便您可以查看该关系属性的设置

问题1. 选择订单时,我的关系是否正确,以便能够检索所有订单行,或者我是否需要执行两个查询,一个用于检索所有
订单
,另一个用于检索所有
订单行
,然后根据与之关联的
订单行
组合它们。这就是我在后端SQL设置中所做的,但我希望核心数据能够以更好的方式获取行

问题2。用户应该能够删除任何
订单行
,而不会影响
订单
实体,除非更新
订单的
orderTotalAmount
属性。但我的问题是,我不希望在删除特定的
orderLine
时删除
Order
。为此,我需要将删除规则设置为
No Action`


问题3。如果我想拥有它,我的关系是否良好,这样1
订单
可以有许多与之关联的
订单行?

根据苹果的建议,你也应该设置反向关系

OrderLines到OrderLines的订单数量太多,OrderLines到您正确设置的订单数量太多-但这不应该是可选的。 对于订单,您还应该具有删除规则:Cascade-因此,如果您删除订单,它将删除所有相关的订单行

  • CoreData将为您做到这一点——更重要的是,它将在惰性模式下做到这一点——仅当您访问将加载的关系对象时。你可以改变这一点,并预装所有,但只有当你真的需要它

  • 为此,您应该保留nullify操作-它将正确更新订单,并在删除相关对象时断开它们的连接

  • 在Begging时,你也应该有订单与订单行以及订单数量之间的反向关系。这还将为您生成自动创建关系的方法

    - (void) addOrderLinesObject:(OrderLines*)value;
    - (void) removeOrderLinesObject:(OrderLines*)value;
    
  • 正确设置后,您还将拥有顺序类:

       @property (nonatomic, retain) NSSet* orderLines;
    

    有了这些,你可以访问相关的对象。

    你能看看我的3个折叠问题吗?请解释一下你的答案是如何回答这些问题的。谢谢你,伙计,谢谢你。关于你在第2点中所说的,订单将以何种方式“更新”?是的-这就是为什么你应该设置反向关系,以便SQLLite可以设置回订单的链接并对其进行优化,这样当你详细列出订单行时,他们可以参考联系人并从订单中删除他们自己。关于第3点,没有办法:O?!我从来都不知道这样的自动方法会被创造出来!这太棒了,会很有帮助的!那么,将设置为
    no action
    而不是
    nullify
    有什么区别呢?我想要的是,当我删除订单行时,它不应该到处删除任何订单,因为与已删除订单行关联的订单仍然可以有其他与该订单关联的订单行。我不希望空对象到处都是,否则我就必须检查空对象。