CoreData und Sortierung... passt mein Gedankenmodell?

  • CoreData und Sortierung... passt mein Gedankenmodell?

    Hallo,
    ich hab mal eine CoreData Frage:


    Ich habe eine Entity "Search" und eine Entity "SearchResult". Eine Search kann mehrere SearchResults haben, und ein SearchResult wiederum in mehreren Searches vorkommen.
    Nun ist aber auch die Reihenfolge der SearchResults in einer Search wichtig, die kann aber wiederum bei jeder Search unterschiedlich sein (die Ergebnisse einer Search kommen von einer Web-API und sollen auch in der Reihenfolge angezeigt werden, die diese vorgibt).

    (Speichern tue ich es mit CoreData deshalb weil ich auch eine SearchHistory habe...)

    Somit denke ich kann ich keine direkte Relation zwischen Search und SearchResult herstellen, oder? Ich denke ich brauche eine weitere Entity... Nennen wir sie mal OrderedSearchResult und geben ihr ein Attribut "rank". (Ich bin bei der Namensgebung von solchen Dingen schlecht... vielleicht fällt jemanden ein besserer Name ein?)
    Jetzt hätte jede Search mehrere OrderedSearchResults und jedes OrderedSearchResult genau ein SearchResult.

    Und jetzt würde ich in der Search ein FetchedProperty machen dass nach dem Rank von seinen OrderedSearchResults sortiert und mir diese zurück gibt? Und über das nun sortierte NSArray würde ich dann auf die Dokumente kommen?
    Meine Frage ist jetzt.... wie würde so ein FetchedProperty aussehen? Also mit der Sortierung?

    Macht das für euch so Sinn? Oder würdet ihr da was anders machen?


    Danke und liebe Grüße.
  • Das kann man nicht allgemein sagen. Letztlich kommt es darauf an, ob SearchResult-Instanzen immer nur zu einer Search-Instanz gehören.

    Negm-Awad, Objective-C und Cocoa, Band I, S. 648 ff.

    Wenn dem nicht der Fall ist, reicht auch eine einfache Eigenschaft "order" in SearchResult.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Hallo,
    danke für deine Antwort!

    Wie beschrieben kann eine SearchResult-Instanz zu mehreren Search-Instancen gehören. Deshalb würde ich ja eine weitere Entity "OrderedSearchResult" einführen um eben eine Sortierung zu erreichen. Und da wäre es dann so, dass eine OrderedSearchResult-Instanz nur zu EINER Search-Instanz gehören würde.
    Macht das so Sinn?
    Ich weiß auch leider nicht wie ich das dann in der Search-Entity beschreiben würde. Ich denke dass es dazu die FetchedProperties gibt, oder? Aber wir würde das Predicate dazu dann ausschauen?

    Danke und lg
  • Hallo Amin,
    Ich muss das machen, weil Dokumente die gefunden werden können, bei mehreren Suchanfragen daher kommen können. Des weiteren gibt es dann noch die Möglichkeit diese als Favorit zu markieren bzw Notizen hinzuzufügen. Deshalb das gleiche Objekt,

    Kann mir jemand helfen wie ich dann das entsprechende FetchedProperty mache? Ich muss da ja ein Predicate einsetzen und weiß nicht wie ich das mache. Oder verwende ich da Fetch Requests?

    Lg