Erstellen einer räumlichen "Viele zu Eins" -Verbindung

10

Ich versuche, eine so genannte "Viele-zu-Eins" -Verbindung zu erstellen. Ich weiß nicht, ob das der richtige Begriff wäre oder nicht. Ich habe eine Tabelle mit eindeutigen Kontonummern für Mobilheime (dh - M1007970) pro Paketkontonummer (R0003285). (Viele Mobilheime pro Paket - viele zu eins.) Ich muss diese Tabelle mit unserer Paketgeometrie verbinden - und habe immer noch nur ein Polygon pro Paket.

So kann die Tabelle beispielsweise drei Zeilen mit den Mobilheimkontonummern M1007370 in einer Zeile, M1007371 in einer anderen und einer weiteren mit M1059370 enthalten, die jedoch alle dieselbe Paketnummer R0032585 haben. Unsere Paketgeometrie hätte nur das gleiche Feld von R0032585.

Beim Beitritt habe ich 12.088 Mobilheimaufzeichnungen und 44.103 Pakete. Wenn ich "alle Aufzeichnungen aufbewahre", habe ich 44.103 Aufzeichnungen mit nur 7.947 Mobilheim-Kontonummern (von den ursprünglichen 12.088). Wenn ich mich aufgrund von "Nur übereinstimmende Datensätze behalten" anmelde, erhalte ich insgesamt nur 7.947 Datensätze.

Ich habe es in der Vergangenheit erfolgreich gemacht und ein Modell erstellt. In diesem Modell verwende ich die Tabelle für die Mobilheime, um basierend auf der Paketkontonummer eine Verbindung zur Paketebene (.lyr - die einzige Möglichkeit, wie Sie einem Modell beitreten können / könnten) beizutreten. Ich kopiere die Funktionen und behalte nur übereinstimmende Datensätze in einer Datei-Geodatabase. Aus der Datei Geodatabase hänge ich sie dann an unser SDE-System an. Dies funktioniert derzeit aus Gründen, die ich nicht verstehen kann, da sich nichts geändert hat.

Vielleicht kann jemand besser vermitteln als ich, was ich versuche, und wenn es etwas anderes als eine Beziehung von vielen zu eins heißt (ich glaube nicht, dass es eine von vielen zu vielen ist ...).

Evan
quelle

Antworten:

9

Es ist manchmal verwirrend, aber es ist wirklich eine Frage der Perspektive. In diesem Diagramm (aus diesem Thema ) finden Sie eine Referenz:

Beziehungsdiagramm

Dies ist ein Beispiel für fünf Beziehungen (und drei verschiedene Kardinalitäten ).

  1. Eins-zu-viele: Pakete werden in einer Eins-zu-viele-Beziehung mit der ParcelToOwner-Tabelle verknüpft. Ein Paket kann viele Eigentümer haben (Teilbesitz).
  2. Viele-zu-Eins: Die ParcelToOwner-Tabelle bezieht sich auf Pakete in einer Viele-zu-Eins-Beziehung. Viele Eigentümer besitzen (zumindest einen gewissen Prozentsatz) ein Paket.
  3. Viele-zu-Eins: Die ParcelToOwner-Tabelle bezieht sich auf Eigentümer in einer Viele-zu-Eins-Beziehung. Viele Pakete können (zumindest teilweise) einem Eigentümer gehören.
  4. Eins-zu-viele: Eigentümer sind in einer Eins-zu-viele-Beziehung mit der ParcelToOwner-Tabelle verbunden. Ein Eigentümer kann viele Pakete besitzen (wiederum zumindest teilweise).
  5. Viele-zu-Viele: Pakete sind mit Eigentümern in einer Viele-zu-Viele-Beziehung verbunden. Viele Pakete können (zumindest teilweise) im Besitz vieler Eigentümer sein, und viele Eigentümer können (zumindest teilweise) viele Pakete besitzen. Dies wird durch die ParcelToOwner-Tabelle und die oben genannten Beziehungen ausgedrückt. Die meisten DBMS können ohne eine Zwischentabelle ( Quelle ) keine Viele-zu-Viele-Beziehung ausdrücken , daher dieses Design.

Wie Sie sehen können, hängt es davon ab, wie Sie eine Beziehung eins zu viele oder viele zu eins betrachten.

Der einfachste Weg, um das zu erreichen, wonach Sie suchen, besteht darin, eine Abfragetabelle zu erstellen , die viele identische Pakete erstellt, eines für jedes Mobilheim. Weitere Informationen finden Sie in diesem Blogbeitrag: Ein kurzer Tipp zur Durchführung eines 1: M-Joins

Wenn sich alle Ihre Daten in einer Unternehmens-Geodatabase befinden, können Sie auch eine Abfrageebene verwenden , um das Gleiche im laufenden Betrieb zu tun (keine Zwischen-Feature-Class).

blah238
quelle