2017-05-29 5 views
0

Ich bin neu in iOS, Swift. Meine Anwendung hat eine Entität mit dem Namen "Kategorie" in einer Beziehung zu vielen Entitäten namens "Filme".So vermeiden Sie doppelte Datensätze in Stammdaten - iOS

"Filme" -Entitäten ändern sich, nach Daten, die ich von einer URL bekomme. Ich suche nach einer Möglichkeit, in jeder Kategorie keine Filmaufnahmen zu duplizieren, und ich kann mir keinen einfachen Weg vorstellen.

+0

Haben die Entitäten eine eindeutige ID? –

+0

Nein, das tun sie nicht. Die Kategorie hat eine Einschränkung, die Filme nicht. – benh

+0

worum fragen sie? Titel sagt duplicate aber Frage sagt nicht? – sage444

Antwort

0

Kerndaten sind nicht eingebaut, um die Eindeutigkeit zu gewährleisten. Das musst du selbst regeln. Aber es ist nicht so schwer. Führen Sie vor jedem Einfügen/Update einen Fetch durch - wenn es nicht existiert, dann erstellen Sie es, wenn es bereits existiert, dann aktualisieren Sie es. Wenn Sie mehrere gleichzeitig aktualisieren (z. B. von einer Netzwerkanforderung, die für viele Entitäten Updates enthält), rufen Sie dann alle in einer einzigen Abrufanforderung ab und erstellen oder aktualisieren sie dann wie benötigt.

Im Allgemeinen werden diese Abrufe mit uniqueIds für jede Entität durchgeführt. Wenn Sie keine uniqueId für Ihre Entitäten haben, haben Sie ein tieferes Problem als Core-Daten. Sie könnten zwei Filme mit demselben Namen oder einen Film mit anderen Namen haben. Wenn Sie nichts haben, was dasselbe sagt, dann haben Sie grundsätzlich keine Möglichkeit zu wissen, ob Sie eine andere Entität erstellen oder eine bestehende aktualisieren müssen. Es ist möglich, dass Sie den Filmnamen verwenden können, aber ich würde das nicht empfehlen. Ich schlage vor, dass Sie näher auf Ihre Server-API schauen und sehen, ob es eine uniqueId gibt, die geliefert wird, und wenn es keine gibt, dann muss sie vom Server-Team repariert werden.

+0

Wie kann ich dann meinen Filmnamen zu einer eindeutigen ID machen? – benh

+0

Wenn Sie neue Daten erhalten suchen Sie nach einem vorhandenen Film nach Namen. Wenn Sie einen finden, aktualisieren Sie ihn, wenn Sie ihn nicht erstellen. (Auch dies ist eine schlechte Idee - Ihr System haben Sie uniqueIds für jeden Film. Ich wäre wirklich überrascht, wenn der Server Ihnen keine uniqueId geben würde). –

Verwandte Themen