Technische Spalten
Alle Tabellen, in denen TopLogic Anwendungsobjekte speichert, haben einen Präfix von technischen Spalten für die interne Realisierung von Mandantenfähigkeit (Mandantenfähigkeit) und Versionierung (Datenversionierung).
Mandant
Die Spalte branch
enthält einen Fremdschlüssel für die Tabelle Branch
, welche die Mandanten des Systems verwaltet. In einer Anwendung ohne Mandanten existiert nur ein einziger Branch mit der Nummer 1. Daher ist in solchen Anwendungen der Wert der technischen Spalte branch
immer 1.
Objekt-Identität
Die Spalte identifier
enthält die technische ID des in der Zeile gespeicherten Objektes. Die ID eines Objektes bleibt von seiner Erzeugung bis zu seiner Löschung konstant. Über den Wert der Spalte identifier
können alle Versionen ein und desselben Objektes gefunden werden. Referenzen auf Objekte werden über Fremdschlüsselbeziehungen zu der Spalte identifier
realisiert.
Gültigkeit
Jede Zeile in einer Objekttabelle repräsentiert nicht das Objekt selbst, sondern eine Version des Objektes. Eine solche Version wird über ihren Gültigkeitsbereich (revMin
inklusive bis exklusive revMax
) ausgedrückt. Die Werte in den Spalten revMin
und revMax
sind Fremdschlüssel für die Tabelle Revision
, welche die Version des Gesamtsystems codiert. Jede Änderung im System erzeugt eine neue Revision. Bei jeder Änderung werden aber nur diejenigen Zeilen der bei dieser Operation geänderten Objekte angefasst. Daher gibt es einen Spezialwert (263-1) in der Spalte revMax
, welcher für die "aktuelle Version" steht. Alle aktuellen Versionen von Objekten in der Tabelle MyTable können daher über das folgende SQL-Statement gefunden werden:
SELECT * FROM MY_TABLE WHERE REV_MAX=9223372036854775807
Anlageversion
In der Spalte revCreate
steht die Version, in der das Objekt angelegt wurde. Der Wert dieser Spalte ist i.d.R. für alle Versionen desselben Objektes identisch. Diese Version wird ebenfalls als Fremdschlüssel für die Tabelle Revision
realisiert.