Tag: 多对多

RestKit多对多关系在主表中的连接表和空值保存新行

我使用RestKit从本地caching来自远程服务器的数据。 在其中,我有类别<< – >>新闻之间的多对多关系。 映射似乎工作正常,尽pipe它也保存我的类别表中的空值(它也保存了正确的类别)。 如下图所示: 它似乎保存30空行,我也有30(非空)行在我的连接表,所以这里可能有一个相关性。 我得到的JSON如下所示: "categories":[{"category_id":1},{"category_id":4}] 我有两个从NSManagedObjectinheritance的自定义模型对象。 @interface News : NSManagedObject […] @property (nonatomic, retain) NSSet *categories; @end @interface Category : NSManagedObject […] @property (nonatomic, retain) NSSet *news; @end 两者都使用@dynamic 。 我的映射如下所示: RKManagedObjectMapping *categoryMapping = [RKManagedObjectMapping mappingForClass:[Category class] inManagedObjectStore:objectManager.objectStore]; categoryMapping.primaryKeyAttribute = @"categoryId"; categoryMapping.rootKeyPath = @"categories"; [categoryMapping mapKeyPath:@"id" toAttribute:@"categoryId"]; […] RKManagedObjectMapping* newsMapping = […]

决定是否使用与Parse.com for iOS照片共享应用程序的一对多,多对多或一对一的关系

我正在使用Parse.com为iPhone创build一个照片分享应用程序,到目前为止,所有事情都非常简单,我刚写完上传照片到Parse服务器的代码。 到目前为止,我一直在使用默认的“_User”类。 以下是为每个用户存储的一些关键数据types:objectId,用户名,电子邮件以及名为“friends”的数组对象,其中包含数据库中用户添加到其好友​​列表中的其他用户的用户名。 现在,我需要设置用户之间的实际共享function。 我一直在浏览Parse文档,我需要决定是使用一对多,多对多还是一对一的关系。 取决于哪一个我最终select,然后我将需要决定使用指针,数组,parsing关系,或连接表。 我要快速解释我正在尝试实现的“共享”function: 对于我的照片应用程序,user1通过拍照并select将其发送给名为user2的朋友列表上的朋友来启动“关系”。 照片然后上传到parsing并发送到用户2。 user2收到来自user1的照片。 user2打开照片,这是他们的工作,通过使用应用程序的编辑工具,并在原始照片上随机绘制的东西“完成”“关系”。 例如:user2在照片中的user1的脸部旁边画一个心脏。 当用户2完成时,最终的照片被保存到他们的个人资料中,并且还被发回到原始发送者user1,并且“关系”现在完成并完成/closures。 在阅读完文档并进行自己的研究之后,我得出结论:我需要使用“连接表”来使用“多对多”关系,以便可以包含元数据。 但是,我对于Objective-C和编程通常是陌生的,如果我在开始之前不要求input和build议,那么我可能会select错误的解决scheme或不必要的解决scheme。

NSPredicate在多对多关系中计数> 0

我在CoreData中有三个层次的对象:假设实体A有一组实体B,而实体B有一组实体C。 (多对多B和B多对多C) 我想要得到所有的实体A,使得有B和C。 我试图使用一个谓词时提取实体A: NSPredicate(format: "ANY bs.cs.@count > 0")'但我得到这个错误: Unsupported function expression count: (bs.cs) 任何想法如何正确地写这个查询?

添加属性到多对多的关系?

我一直在使用核心数据build模我的数据库。 我有两个在许多关系中的实体。 每个人可以有很多地址,每个地址上可以有多个人住。 现在我想添加属性到这个关系。 比如一个人的地址会有标签在家里,其他人的地址会有标签的妈妈的地方。 我不能在地址实体上添加这个属性,因为相同的地址对不同的人有不同的标签。 既然关系是像NSSet一样build模的,我没有办法做到我想要的。 这可以以某种方式完成?

核心数据:谓有序关系中的第一个元素

我有这至多包含至less一个元素的关系: Appointment <<——>> Invitee appointment.invitees是导致NSOrderedSet的有序关系 。 在由读取结果控制器控制的表视图中,列出了约会,以及被邀请者集合的第一个元素。 现在我想用被邀请者的名字来search这个列表,使用NSPredicate 。 但是如何引用谓词中有序列表的第一个元素呢? 我试过了: fetchRequest.predicate = [NSPredicate predicateWithFormat: @"invitees[FIRST].lastName CONTAINS[cd] %@", searchTerm]; 但是我得到了unimplemented SQL generation for predicate错误。 这是有道理的,因为结果是一个集合,但不是一个严格的数组。 不过,我认为sqlite商店必须build模的顺序,所以它应该是可检索的。 有什么build议?