Hola fpirovani.
Se podría decir que definir un dominio en
Firebird es similar a definir un tipo en
Pascal o
Delphi. Por ejemplo:
Código SQL
[-]
CREATE DOMAIN CHAR_LICITO CHAR(1) CHECK(UPPER(VALUE) IN ('S','N'))
Crea un dominio llamado "CHAR_LICITO" de un caracter, cuyos valores permitidos son 'S' y 'N'.
Luego en lugar de hacer esto en cada una de nuestras tablas:
Código SQL
[-]
CREATE TABLE XX_XX(
CARACTER CHAR(1) CHECK(UPPER(VALUE) IN ('S','N')),
...
podríamos hacer:
Código SQL
[-]
CREATE TABLE XX_XX(
CARACTER CHAR_LICITO,
...
Ahora bién, ¿ Cual es la ventaja de todo esto a parte de ahorrar escritura ?
Bueno... si pasado un tiempo decidimos que los caracteres lícitos serán 'A' y 'B' no será necesario recorrer todas las tablas en donde definimos la restricción para modificarla. Bastará con modificar el dominio:
Código SQL
[-]
CREATE DOMAIN CHAR_LICITO CHAR(1) CHECK(UPPER(VALUE) IN ('A','B'))
Saludos.