2017-05-05 5 views
2

Im Erstellen einer App, die die Entitäten "Plan" und "Tool" bekam. Ein "Werkzeug" muss eindeutig sein und Werkzeuge werden mit verschiedenen Plänen verknüpft. Zum Beispiel bekam Plan "A" die Werkzeuge "a", "b" und "c". Und ein anderer Plan "B" bekam die Werkzeuge "b", "c" und "d". Also sind "b" und "c" beide in "A" und "B". So kann ein Tool mit mehr Plänen verknüpft werden.Core Data Relationship Einstellungen

Wie kann ich dies mit den Kerndatenbeziehungen tun? Ich habe verschiedene Einstellungen versucht und die Datenbank mit "DB Browser for SQLite" beobachtet, aber es funktioniert nicht so wie ich es möchte.

Beispiel:

enter image description here

Welche Einstellungen muss meine Beziehungen haben?

+1

Was genau funktioniert nicht? Das Erstellen beider Entitäten im Codedaten-Datamodell und das Erstellen einer "tools" - "zu-viele" -Beziehung in Plan und einer "pläne" "zu-viele" -Beziehung in Tool und das gegenseitige Markieren als inverse Funktion sollte funktionieren. – KaraBenNemsi

+0

Vielen Dank! Es klappt. Ich wusste nicht, wie ich die Datenbankstruktur in meinem Datenbankbrowser interpretiere. Aufgrund deines Kommentars habe ich es nochmal versucht und dann stellte sich heraus, dass es schon funktioniert hat! Vielen Dank :) –

Antwort

2

Von Apple's documentation:

Many-to-Many Beziehungen

Sie definieren eine many-to-many-Beziehung mit zwei zu-viele Beziehungen. Die erste zu-viele-Beziehung geht von der ersten Entität (der Quellenentität) zu der zweiten Entität (dem Ziel). Die Zweit-zu-Viele-Beziehung geht von der zweiten Entität (der ursprünglichen Zieleinheit ) zur ersten Entität (der ursprünglichen Quelleinheit). Sie stellen dann jeweils die Umkehrung der anderen ein.

In Ihrem Fall sollte es so aussehen:

Model Diagram

Hier finden Sie die Beziehung Eigenschaften sehen:

Relationship Properties 1

Relationship Properties 2

Wieder von der Apple-Dokumentation :

WICHTIG

Sie müssen in beiden Richtungen, die viele-zu-viele-Beziehungen definieren ist, müssen Sie zwei Beziehungen angeben, die jeweils die Umkehrung der andere. Sie können nicht einfach eine To-Viele-Beziehung in einer Richtung definieren und versuchen, es als ein Viele-zu-Viele zu verwenden. Wenn Sie dies tun, werden Sie mit referenziellen Integritätsproblemen enden.