DOMAIN (Postgres)
Función de PostgreSQL: crear tu propio tipo con una restricción incorporada. CREATE DOMAIN email AS TEXT CHECK (VALUE ~ '^[^@]+@[^@]+$'). Se usa como tipo de columna y la restricción viaja con él automáticamente.
Sirve para no repetir el mismo CHECK en veinte tablas: CREATE DOMAIN positive_int AS INTEGER CHECK (VALUE >= 0). Se diferencia de CREATE TYPE, pensado para tipos compuestos. En una migración, ALTER DOMAIN cambia a la vez todas las tablas que lo usan. La contrapartida es que la lógica queda escondida en el sistema de tipos, más difícil de ver al mirar el esquema de una tabla. No es una función muy popular — muchos usuarios de PostgreSQL prefieren repetir el CHECK en línea. Los tipos ENUM ocupan un terreno parecido, pero para listas fijas de valores.