Tag: 一对多

决定是否使用与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。

核心数据performance:对更多对多关系的预测

使用SQL数据存储,我有这样一个模型: 类别< – >>项目 collections< – >>项目 品牌< – >>项目 每个左侧的实体都有一个多对多的关系,这个关系命名为Item到Item实体。 每一个分别与一个项目关系类别 , 收集 品牌和品牌相反。 我想用至less一个与特定集合和类别相关的项目获取所有品牌对象。 在自然语言中,我需要具有特定类别和特定集合的所有品牌的商品。 给定对象Category * myCategory和Collection * myCollection ,我用这种方式在Brand实体上构build一个谓词: NSPredicate *myPredicate = [NSPredicate predicateWithFormat:@"(ANY items.category == %@) AND (ANY items.collection == %@)",myCategory,myCollection]; 我得到正确的结果。 问题是性能。 太慢了! 我简化了三个层次的问题! 我们来考虑iOS多级别目录中的四个级别:应用程序显示可用类别,用户select类别,应用程序显示该类别中的集合,用户select集合,应用程序显示该集合中的品牌(以及已select的类别),用户select一个品牌,该应用程序显示在该品牌,集合和类别的材料… 说实话,我使用NSCompoundPredicate把每个用户的select放在子类中,dynamic构build最终的谓词。 但这个问题的目的并不重要。 在sql数据存储中, Item实体有超过30,000个(30k)的对象,而使用AND之间的关系非常缓慢(在上面的例子中,我注意到7-10秒的滞后时间来显示品牌)。 我会尽力: – 从类别,collections品和品牌实体中删除物品关系 – 在物品实体上,将类别 , collections 品牌和品牌关系replace为“category_id”,“collection_id”和“brand_id”等属性上的提取属性。 – 使用关键path或谓词来获取品牌而不使用多对多的关系。 […]

从实体A的给定实例获得实体B的所有实例的总和

我有实体A和实体B(iOS核心数据应用程序)之间的一对多关系。 我需要从实体A的给定实例获得实体B的所有实例的NSDecimalNumber属性的总和。有没有人有这样的教程或例子?

使用“to many”关系从NSFetchedResultsController派生UITableView节

我的核心数据模型如下所示: article <—>> category 是否可以使用NSFetchedResultsController来产生一个看起来像这样的UITableView? Category 1 – Article A – Article B – Article C Category 2 – Article A – Article D – Article E – Article F Category 3 – Article B – Article C 具体而言,我对每个UITableView部分具有唯一标题(例如“类别1”,“类别2”)的(边缘?)情况感兴趣,但同一对象可以存在于多个部分中(例如,在类别1和类别2中)。 我search了苹果的Core Data文档,花了两天的时间仔细阅读这些问题,但是,唉,连这个也不知道是否可行,更别提怎么实现了。 感谢任何帮助或指向以前回答的问题。 我当然找不到它。

NSPredicate和NSInvalidArgumentException中的SUBQUERY

我在Core Data中设置了以下模型。 Book has a to-many relationship, called toBookOrders, with OrderBook entity. The inverse is called toBook. Book has a BOOL value property called isSync. 我build立了以下NSPredicate 。 NSEntityDescription* entityDescription = [NSEntityDescription entityForName:@"Book" inManagedObjectContext:moc]; NSPredicate* predicate = [NSPredicate predicateWithFormat:@"isSync == 0 AND SUBQUERY(toBookOrders, $x, $x.toBook == SELF)"]; 通过这个谓词,我只需要抓取没有同步的书籍和他们的相关命令。 这是我收到的错误。 终止应用程序由于未捕获exception“NSInvalidArgumentException”,原因:“无法parsing格式string”isSync == 0和子查询(toBookOrders,$ x,$ x.toBook == SELF)“ […]

CoreData – 一对多的build模关系是一对一的

我是核心数据build模的新手,我很难理解一对多关系是如何工作的。 我有一个名为Task的父实体,它可以有多个Comment实体的实例。 我这样build模:在Comments ,与Task的关系称为task , Task实体是目的地。 在“ Task ,一种叫做“ comments的关系,以“ Comment作为其目的地,两种关系都是相反的。 不定义反转会导致警告或错误消息。 虽然这种方式的build模工作,我注意到,一旦我给一个给定的Task创build第二个评论,第一个被replace(一对一的关系)。 告诉核心数据模型的正确方法是什么?这种关系在一个Task允许许多评论? 此外,由于CoreData似乎自行pipe理主键,我将如何创build一个NSPredicate来检索给定任务的所有注释? 感谢您的任何build议!