基于许多相关实体之一的排序
Posted
技术标签:
【中文标题】基于许多相关实体之一的排序【英文标题】:Sorting based on one of many related entities 【发布时间】:2011-09-29 11:52:59 【问题描述】:实体 B(书籍)与实体 D(描述)具有一对多的关系。这个想法是一本书对不同的语言有不同的描述。
我想根据给定语言 (D.languageID) 的书名 (D.title) 对书籍进行排序
如果 B 与 D 是一对一的关系,我会这样做:
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"d.title" ascending:YES];
当然,您可能会说,该模型不会阻止一本书有许多具有相同语言 ID 的描述。但在这种情况下,任何(例如第一个)描述对我来说都可以。
我的模型错了吗?现在最好的解决方案是什么?
【问题讨论】:
【参考方案1】:这在逻辑上是不可能的。如果您有许多属于 A 的对象 B,那么应该采用哪个 B 的排序例程?
例如,您有实体 A“Parent”和实体 B“Child”以及 B“dateOfBirth”的属性。您不能根据最低出生日期对所有 Parent 对象进行排序,因为如果两个不同的父母各有两个孩子,那么他们每个人的孩子都可能比另一个孩子大。
清楚吗?
【讨论】:
我提前知道必须使用哪个对象 B。所以这是我的问题,如何根据特定的 Child 对象对 Parent 对象进行排序? 我看不出根据孩子的最低出生日期对父母进行排序有什么不合逻辑的 我明白你的意思。您必须首先确定每个父母的最小孩子,然后提取和排序。不知道如何在一个简单的提取中做到这一点。使用循环并不太难。 如果你想按关系排序怎么办。@max.date?那你会怎么做呢?在这里,您可以从一对多关系的集合中获得一个确定的单个值,您可以实际排序 1) 获取所有父母; 2)循环并剥离除最年长的孩子以外的所有孩子; 3)按child.date排序。以上是关于基于许多相关实体之一的排序的主要内容,如果未能解决你的问题,请参考以下文章