HSQL-Tabelle erstellen
Allgemein |
Siehe Abschnitt Datenstrukturen. |
Geltungsbereich / Lebensdauer |
Leben systemweit (also auch in anderen Profilen) und permanent (also nicht nur während des Profil-Laufs/-Tests). |
Für den Fall, dass Phase 4 aktiviert ist, kennen Sie bereits die Möglichkeit sich für bestehende Datenbank-Tabellen automatisch einen Datenbank-Knoten mit Feldern in der Zielstruktur erstellen zu lassen (über das Kontextmenü der Zielstruktur).
Ist Phase 4 aktiviert, haben Sie ebenfalls die Möglichkeit die andere Richtung zu gehen. D. h. Sie können in der Zielstruktur einen Knoten mit Feldern anlegen und sich dann automatisch in einer integrierten HSQL-Datenbank eine Tabelle erstellen lassen (mit Feldern, die den Feldern in Ihrem Zielstrukturknoten entsprechen). Dies ist eine bequeme und intuitive Art sich für Ihr Profil eine Datenbank-Struktur im Hintergrund aufzubauen. Zudem müssen Sie sich keinerlei Gedanken über Zugriffsrechte oder die Beantragung benötigter Datenbank-Strukturen beim Datenbank-Administrator machen. Dieser bleibt dabei schlicht außen vor, da Sie ja nur interne Datenstrukturen verwenden, für die Sie bereits alle notwendigen Zugriffsrechte haben (wenn Sie diese haben).
Im Folgenden ist das Vorgehen zur Erstellung eines HSQL-Knotens (und damit einer HSQL-Tabelle) dargestellt.
Erstellen Sie in der Zielstruktur einen beliebigen neuen Knoten mit einer beliebigen Anzahl an Feldern.
Wählen Sie in den Eigenschaften des Zielstrukturknotens "node" den Datenbank-Alias "hsql" aus. Dieser ist standardmäßig bereits vorhanden.
Danach können Sie über das Kontextmenü des Knotens "node" eine HSQL-Tabelle erzeugen lassen mit der Option "Tabelle erstellen".
Es öffnet sich ein weiterer Dialog. Drücken Sie hier (1) "Feldname als SQL Spaltenname in den Feldern setzen" und (2) "SQL erzeugen". Danach wird das Feld unten "SQL Befehle" (3) automatisch gefüllt. Mit (4) "SQL ausführen" schließen Sie den Vorgang ab.
Sie haben nun eine funktionsfähige HSQL-Tabelle angelegt und Ihr Knoten Node mit seinen Feldern ist mit dieser verbunden (über die Knoten- und Feld-Eigenschaften, so wie Sie das von "normalen" Datenbank-Knoten kennen).
Andere Datenbanktypen
Sie können statt der internen HSQL-Datenbank auch andere Datenbanken für diesen Mechanismus benutzen. Verwenden Sie in der obigen Beschreibung schlicht statt hsql den Alias der gewünschten Datenbank.
Wie die Datenypen der Strukur-Felder für den jeweiligen Datentypen der gewählten Datenbank umgesetzt werden, siehe (3), können Sie über die Konfigurationsdatei ./etc/admin/datawizard/db_datatypes.properties steuern.
# Avaiable types to define: (String, Integer, Double, Date, Boolean, TimeStamp, Float, BigDecimal, BigInteger, Blob)
# Holders which will be replaced:
# %n% for single values (length)
# %p% total number of digits
# %s% number of digits in the fractional part
#
# Composition:
# specific String of a databasedriver . datatype = String to use
#
# DB2 Datatypes
db2.String=VARCHAR(%n%)
db2.Integer=INTEGER
db2.Double=DOUBLE
db2.Date=DATE
db2.Boolean=SMALLINT
db2.TimeStamp=TIMESTAMP
db2.Float=REAL
db2.BigDecimal=DECIMAL(%p%,%s%)
db2.BigInteger=BIGINT
db2.Blob=BLOB
# MYSQL
mysql.String=VARCHAR(%n%)
mysql.Integer=INTEGER(%n%)
mysql.Double=DOUBLE(%p%,%s%)
mysql.Date=DATE
mysql.Boolean=SMALLINT(%n%)
mysql.TimeStamp=TIMESTAMP
mysql.Float=FLOAT(%p%,%s%)
mysql.BigDecimal=DECIMAL(%p%,%s%)
mysql.BigInteger=BIGINT(%n%)
mysql.Blob=BLOB
#Postgres
postgres.String=VARCHAR(%n%)
postgres.Integer=INTEGER
postgres.Double=DOUBLE PRECISION
postgres.Date=DATE
postgres.Boolean=BOOLEAN
postgres.TimeStamp=TIMESTAMP
postgres.Float=REAL
postgres.BigDecimal=NUMERIC(%p%,%s%)
postgres.BigInteger=BIGINT
postgres.Blob=BYTEA
# MariaDB
mariadb.String=VARCHAR(%n%)
mariadb.Integer=INTEGER(%n%)
mariadb.Double=DOUBLE(%p%,%s%)
mariadb.Date=DATE
mariadb.Boolean=SMALLINT(%n%)
mariadb.TimeStamp=TIMESTAMP
mariadb.Float=FLOAT(%p%,%s%)
mariadb.BigDecimal=DECIMAL(%p%,%s%)
mariadb.BigInteger=BIGINT(%n%)
mariadb.Blob=BLOB
#Oracle
oracle.String=VARCHAR2(%n% CHAR)
oracle.Integer=INTEGER
oracle.Double=DOUBLE PRECISION
oracle.Date=DATE
oracle.Boolean=SMALLINT
oracle.TimeStamp=TIMESTAMP
oracle.Float=FLOAT
oracle.BigDecimal=DECIMAL(%p%,%s%)
oracle.BigInteger=BIGINT
oracle.Blob=BLOB
#MSSql
sqlserver.String=VARCHAR(%n%)
sqlserver.Integer=INT
sqlserver.Double=FLOAT(53)
sqlserver.Date=DATE
sqlserver.Boolean=SMALLINT
sqlserver.TimeStamp=TIMESTAMP
sqlserver.Float=FLOAT(53)
sqlserver.BigDecimal=DECIMAL(%p%,%s%)
sqlserver.BigInteger=BIGINT
sqlserver.Blob=VARBINARY(MAX)