ELEMENT table (description?, (grant* | primarykey | foreign* | trigger* | constraint* | declaration | index)*) ATTRIBUTE name string title string readonly bool inherits string
Attribut | Typ | Pflicht | Default | Beschreibung |
---|---|---|---|---|
name | string | yes | n/a | Ein eindeutiger Name, welcher die Tabelle identifiziert. Sollte kleingeschrieben und ein valider XML-, SQL-Bezeichner sein. |
title | string | - | n/a | Title ist eine Beschriftung, welche in der Nutzeroberfläche angezeigt werden sollte wenn das Objekt anzeigt wird. Beachten sie, dass der Text ein Platzhalter sein darf, welcher für die angezeigte Sprache übersetzt wird. |
readonly | bool | - | no | Sie können die Tabelle auf schreibgeschützt setzen, um zu verhindern dass Änderungen vorgenommen werden. |
inherits | string | - | n/a | Name der Elterntabelle. |
Ein Tabelle ist eine Reihe von Spaltendefinitionen und Eigenschaften, welche alle Spalten der Tabelle gemeinsam haben, z. Bsp.: Trigger und Indexes.
Vererbung hat für Tabellen folgende Bedeutung: eine Kindtabelle AB erweitert die Struktur und Daten einer Elterntabelle A um die Elemente B. Alle Zeilen in AB besitzen sämtliche Spalten definiert in A + sämtliche Spalten aus B. B bleibt dabei unverändert. Wenn sich die Struktur von A ändert, ändert sich die Struktur von AB ebenso. Jedes Element von AB kann auch als ein Element von A interpretiert werden, aber nicht umgekehrt.
Technisch gesprochen: der Primärschlüssel der Kindtabelle ist ein Fremdschlüssel, der auf den Primärschlüssel der Elterntabelle verweist.
Dies ist ein Unterschied zu PostgreSQL, welches multiple Vererbung mit n Elterntabellen unterstützt - verbunden mit allen Konsequenzen und Problemen, welche dieses Verhalten verursacht.
Thomas Meyer, www.yanaframework.net