Databases Reference
In-Depth Information
-- Variante 1 14
CREATE DOMAIN kunden_status SMALLINT
CHECK (VALUE BETWEEN 0 AND 2);
-- 0: Werbemaßnahme,
-- 1: Gelegenheitskunde
-- 2: Stammkunde
-- Variante 2
CREATE DOMAIN kunden_status CHAR(1)
CHECK (VALUE IN ('W', 'G', 'S');
-- 'W': Werbemaßnahme,
-- 'G': Gelegenheitskunde
-- 'S': Stammkunde
-- Variante 3
CREATE DOMAIN kunden_status CHAR(17)
CHECK (VALUE IN (
'Werbemaßnahme','Gelegenheitskunde','Stammkunde'));
Eine weitere Möglichkeit ist die Benutzung einer zusätzlichen Tabelle, die die
Kategorien als Volltext enthält, wie in folgendem Beispiel dargestellt:
-- Variante 4, mit Nachschlagetabelle
CREATE TABLE kunden_status (
status_key SMALLINT NOT NULL,
status_text CHAR(30) NOT NULL,
PRIMARY KEY (status_key)
);
CREATE TABLE kunde (
kunden_nr kunden_key NOT NULL,
...
status SMALLINT NOT NULL,
REFERENCES kunden_status
ON UPDATE CASCADE
ON DELETE RESTRICT,
...
);
Diese Variante hat darüber hinaus weitere Vorteile:
Wir kommen an die Volltexte heran, ohne dass wir dafür Funktionen (wie in
Kapitel 7.3.2 an Beispielen dargestellt) erstellen müssen.
Wir können ohne Änderung der Datenbankdefinition die möglichen Werte
ändern. Das kann jeder, der die entsprechenden Änderungsrechte an der
Ta b e l l e kunden_status hat.
14 Die Umsetzung vom Kürzel in eine lesbare Form können wir durch Implementierung einer
entsprechenden Funktion erreichen (vgl. Kapitel 7.3.2), die auch in SELECT-Anweisungen be-
nutzt werden kann.
Search WWH ::




Custom Search