我有3个实体:
<div style="width:100px;">
<img class="img-responsive" src="https://placehold.it/350x150"/>
</div>
Ticket
Event
宾客有很多门票。门票有一位客人。
活动有很多门票。
一个事件有很多来宾,一个客人有很多事件(基于一个Ticket实体是clientDeleted = NO)
对于我在Guest上的获取请求,我曾经在谓词上有一个SUBQUERY:
Guest
为五张数字的门票工作得很好。我需要有效地做100,000以上。
现在我有一个想法进行优化:Denormalize以删除SUBQUERY:
NSPredicate predicateWithFormat:@"SUBQUERY(tickets, $ticket, $ticket.clientDeleted = NO AND $ticket.event = %@).@count > 0", event]
我可以通过在Ticket.willSave核心数据挂钩中建立Guest&lt; - &gt;事件关系来实现这一点:
[NSPredicate predicateWithFormat:@"ANY events = %@", event"];
Guest.m:
- (void)willSave
{
[super willSave];
if (self.guest) {
[self.guest updateEventRelationship:self.event];
}
}
这是有效的,但我使用Instruments对它进行了一些时间分析...而且在containsObject调用期间它非常慢。有没有更好的地方我可以将此代码放在模型级别更快?特别是批量导入票时?