Per un database i tipi di dati gestiti sono ovviamente una caratteristica di base molto importante e Postgres ha una scelta estremamente ampia dando anche la possibilità di estenderla .
Uno dei comandi più semplici da usare per creare un proprio tipo di dato è il CREATE DOMAIN in Scuola247 è stato usato diverse volte ad esempio con:CREATE DOMAIN giorno_settimana
AS smallint
abbiamo definito “giorno_settimana” che in questa forma altro non è che un semplice sinonimo di smallint ( numero intero a 16 bit) ma l’utilità della definizione diventa più chiara se la associamo ad una constraint del tipo:
CONSTRAINT giorno_settimana_range CHECK (VALUE >= 1 AND VALUE <= 7);
in maniera che i valori accettato dal nuovo tipo dati non sono più compresi da -2^15 (-32,768) a 2^15-1 (32,767) ma, come suggerito dal nome, da 1 a 7 compresi.
Possiamo quindi utilizzare il nostro nuovo tipo dato nella creazione della tabella orari_settimanali:
CREATE TABLE orari_settimanali
(
orario_settimanale bigint NOT NULL DEFAULT nextval(‘pk_seq’::regclass),
classe bigint NOT NULL,
giorno_settimana giorno_settimana NOT NULL,
periodo_lezione periodo_lezione NOT NULL,
materia bigint NOT NULL
)
In maniera che la colonna giorno_settimana accetterà solo valori compresi fra 1 e 7 qualunque sia il programma e/o il metodo di input usato.
Alla prossima
Andrea