Wann ist es sicher, ObjectIDs als Schlüssel in einer Beziehungsklasse zu verwenden?

14

Ich habe es immer vermieden, ObjectIDs beim Definieren von Beziehungsklassen zu verwenden. Nach meinem Verständnis werden durch einige Aktionen in einer Geodatabase objectIDs zurückgesetzt (z. B. Import / Export). Allerdings sehe ich viele Leute, die sie benutzen.

Bin ich nur paranoid oder gibt es Fälle, in denen es sicher ist, ObjectIDs beim Definieren einer Beziehungsklasse zu verwenden?

Kirk Kuykendall
quelle

Antworten:

16

ObjectIDs werden nur durch Kopieren / Einfügen verwaltet. Kein Import- oder Export-Tool verwaltet sie. Benutzerobjekt-IDs in Beziehungsklassen werden im Allgemeinen nicht empfohlen. Wenn alle Ihre Daten wirklich statisch sind, sollte es funktionieren, aber es besteht immer ein Risiko, wenn Sie die Daten importieren oder exportieren.

Lance Shipman
quelle
4

Wann immer möglich, stütze ich Beziehungen auf andere Schlüsselfelder. Die Verwendung von ObjectID hat mir in der Vergangenheit aus den von Lance genannten Gründen Probleme bereitet. In Projekten, in denen Daten zwischen unserem SDE-Server und einem Clientserver hin und her übertragen werden, bedeutet die Verwendung der ObjectID für die Zuordnung von Tabellen, dass verschiedene Bearbeitungen an den Tabellen durchgeführt werden müssen, um Beziehungen aufrechtzuerhalten.

Auch wenn es keinen Plan gibt, die Daten zu verschieben, bevorzuge ich die Verwendung eines anderen Schlüsselfelds. Ich habe die Erfahrung gemacht, dass Kunden die Auswirkungen ihrer Aktionen auf GIS-Datenbanken in der Regel nicht vollständig verstehen und häufig Dinge brechen, ohne es zu merken. Ich hatte Fälle, in denen Clients Daten auf eine Weise verschieben, die die ObjectID ändert. Meine Projekte beinhalten normalerweise einen benutzerdefinierten Code, der mit der Datenbank einhergeht, und ich verlasse mich nicht gerne darauf, dass die Kunden das System verstehen, um Fehler zu vermeiden. Daher bevorzuge ich die Verwendung anderer Felder für Primärschlüssel und für Beziehungen, Felder, die ich steuern kann.

Jeff Berry
quelle