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

 

2 risposte a “Tipi di dati personalizzati”

    1. Non abbiamo ancora rilasciato i sorgenti, pensiamo di farlo a breve (qualche settimana).
      C’è stata una prova su Symfony ma non è stata completata adesso rimuovo la directory.
      Per il back-end la tecnologia adottata è Java+Tomcat+Lambico+CXF
      Ciao

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *