Können sagen, ich die folgende Art von seltsamen Kerndatenschema haben:Kerndaten: Gibt es eine Möglichkeit, ein Modell mithilfe implizierter Beziehungen anstelle von echten effizient abzufragen?
In diesem Modell gibt es Konten und Tätigkeiten, die eine übergeordnete Entität von Artikel teilen. Darüber hinaus gibt es eine Beziehungsentität, die die Beziehungen zwischen Objekten modelliert, anstatt Kerndaten die Beziehungen mithilfe "realer" Beziehungen modellieren zu lassen. Mit anderen Worten, die Entität "Beziehung" wird als eine Art "Verknüpfungstabelle" verwendet.
Wie kann ich anhand dieses Modells Objekte basierend auf verwandten Objekten abrufen? Zum Beispiel, Wie würde ich alle Konten abrufen, die eine Aktivität haben, die heute auftritt?
Es scheint keine Möglichkeit zu geben, dies in einer einzigen Abrufanforderung zu tun. Das Beste, was mir bisher einfällt, ist, zuerst die Aktivitäten zu holen, die heute stattfinden, dann die Beziehungen, in denen die toId mit den IDs dieser Aktivitäten übereinstimmt, und schließlich die Konten, bei denen die ID der fromId in den Beziehungen entspricht.
3 Abrufanforderungen, um dies zu tun, ist suboptimal. Wir müssen die Konto- und Aktivitätszahlen in den Hunderttausenden unterstützen und all das Abrufen wird möglicherweise sehr langsam sein. Es ist auch peinlich, NSFetchedResultsController mit dieser Art von Modell zu verwenden.
Ja, ich weiß, dass Core Data nicht gerne Dinge macht, aber aus einer Vielzahl von Gründen, die unsere Serverarchitektur und Cross-Plattform-Unterstützung betreffen, würden wir dieses Datenmodell und Core Data wegen all der schönen Dinge gerne benutzen es bietet. Vielen Dank im Voraus für Ihre Hilfe.