我的模型有两个实体(类别和新闻),具有多到多的关系:(这意味着一个类别可能有许多新闻,新闻文章可能属于一个或多个类别)。
以下是我的设计:
类别(属性: categoryID、标题、显示、位置)和与新闻实体的关系称为“新闻”。
“新闻”关系有目的地是“新闻”,反向关系是“类别”,类型对-多关系和删除规则是层叠的。
新闻(属性: newsID,引文,内容,链接)和一个名为“类别”的分类实体的关系。
“类别”关系有目的地是“类别”,反向关系是“新闻”,类型对-多关系和删除规则无效。
对象图如下所示:
新闻<
我的问题是:
1> 是我设计的模型是好的?
如果我从2>上下文示例中删除一个新闻对象,则对设计的模型进行编码,如下所示:
id newsObjectToDelete =.managedObjectContext删除对象:新闻对象;
newsObjectToDelete所属的分类对象是否自动从关系“新闻”的NSSet中删除newsObjectToDelete。
3>如果我想限制“新闻”必须至少属于一个“类别”。如何实现这些约束
提前谢谢。对不起,英语很差
发布于 2012-09-22 16:09:44
- **In Your Data Model**: Using the data model editor, uncheck "Optional" for this relationship, and/or set the "Minimum" count to 1:
- **In Your "News" Subclass**: If you need more fine-grained control and/or error reporting, you can check this during [validation](https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CoreData/Articles/cdValidation.html#//apple_ref/doc/uid/TP40004807-SW3) (to generate an error) or maybe take some automatic actions [during the save process](https://developer.apple.com/library/mac/documentation/Cocoa/Reference/CoreDataFramework/Classes/NSManagedObject_Class/Reference/NSManagedObject.html#//apple_ref/occ/instm/NSManagedObject/willSave).请注意,在开发和调试过程中使用验证(无论是在模型中还是在代码中)只会有帮助--对托管对象上下文调用-save:将失败,返回NO并生成错误。这应该是最后的手段,而且实际上只是为了防止坏数据进入您的持久存储。这样的验证失败告诉您,代码的其他部分是错误的,并生成了错误的对象。
https://stackoverflow.com/questions/12544387
复制相似问题