Keyset-Tabellen in einer Geodatabase in PostgreSQL

In einer Keyset-Tabelle wird eine Liste ausgewählter Zeilen gespeichert, wenn ein ArcGIS Desktop-Client eine Geodatabase-Beziehungsabfrage ausführt, durch die Tabellen mithilfe von Attributen vom Typ Ganzzahl, Zahl, Datum oder Zeichenfolge verbunden werden.

In den Protokolldateitabellen werden die objectids der ausgewählten features gespeichert, wie in Konfigurationsoptionen für Protokolldateitabellen in PostgreSQL-Geodatabases beschrieben. Keyset-Tabellen werden verwendet, um Verbindungen mit anderen Attributen als der objectid zu speichern.

Es wird eine Keyset-Tabelle pro Verbindung und Sitzung erstellt, wenn der Quellauswahlsatz in der Datenbankabfrage mehr als 99 Zeilen enthält.

Keyset-Tabellen in ArcGIS Desktop

Keyset-Tabellen werden in ArcGIS Desktop nicht angezeigt. Wenn Sie jedoch mehr als 99 Datensätze in einer Feature-Class auswählen, die an einer Beziehungsklasse in ArcMap beteiligt, die Attributtabelle öffnen und dann in der Liste "In Beziehung stehende Tabellen" im Menü "Optionen" die in Beziehung stehende Tabelle abrufen, wird eine Keyset-Tabelle erzeugt und mit Daten gefüllt. Zudem wird eine Keyset-Tabelle beim Start einer Editiersitzung erstellt.

Keyset-Tabellen in einer PostgreSQL-Datenbank

In der Geodatabase sind keine Keyset-Tabellen enthalten, bis eines der beiden folgenden Ereignisse eintritt:

Wenn eines dieser beiden Ereignisse eintritt, wird die Keyset-Tabelle als globale temporäre Tabelle erstellt. Im ersten Fall wird die Keyset-Tabelle erstellt und mit Daten gefüllt. Im zweiten Fall wird die Keyset-Tabelle nur erstellt und erst nach Angabe eines entsprechenden Auswahlsatzes mit Daten gefüllt.

Der Keyset-Tabellenname enthält die Prozess-ID der Sitzung, die die Erstellung der Keyset-Tabelle verursacht hat. Folgendes Format wird verwendet:

keyset_<process_id>

In der Keyset-Tabelle sind eine Keyset-ID-Nummer für jeden Auswahlsatz und Werte für das Feld, auf dem die Beziehung zwischen den Feature-Classes basiert, gespeichert.

Da es sich um eine temporäre Tabelle handelt, wird die Keyset-Tabelle gelöscht, wenn der Benutzer die Verbindung zur Datenbank trennt. Sie werden jedoch möglicherweise feststellen, dass die temporären, von PostgreSQL erstellten Schemas zum Speichern dieser Tabelle bleiben. Diese haben Namen wie z. B. "pg_temp_3".

Nachfolgend ist eine Keyset-Tabelle für eine Auswahl zwischen den in Beziehung stehenden Tabellen LATERALS und CONTRACTORS zu sehen. In diesem Fall wird das Feld LONG_VAL gefüllt und enthält die Werte des Feldes CONTRACTOR_ID, auf dem die Beziehungsklasse zwischen LATERALS und CONTRACTORS basiert.

Keyset-Tabelle und ihre zugeordneten Business-Tabellen in PostgreSQL

keyset_<process_id>

Im Folgenden ist die Definition für eine Keyset-Tabelle in PostgreSQL dargestellt:

Feldname

Feldtyp

Beschreibung

Null?

keyset_id

integer

Kennung für die Keyset-Auswahl

NOT NULL

long_val

integer

Wert des Feldes, auf dem die Beziehungsklasse basiert, wenn dieses Feld ein Zahlenfeld ist

str_val

varchar(256)

Wert des Feldes, auf dem die Beziehungsklasse basiert, wenn dieses Feld ein Zeichenfolgefeld ist

dbl_val

double

Wert des Feldes, auf dem die Beziehungsklasse basiert, wenn dieses Feld ein Feld für doppelte Genauigkeit ist

date_val

timestamp without time zone

Wert des Feldes, auf dem die Beziehungsklasse basiert, wenn dieses Feld ein Datumsfeld ist

Keyset-Tabellen in einem XML-Workspace-Dokument

Keyset-Tabellen werden nicht in einem XML-Dokument gespeichert, da sie temporäre Tabellen sind.

Verwandte Themen


3/6/2012