Tipi di dati personalizzati

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

 

Lascia un commento