Tipos de datos comunes
TEXT, VARCHAR(n) -- cadenas
INTEGER, BIGINT -- números enteros
NUMERIC(10,2) -- decimales exactos
BOOLEAN -- verdadero/falso
TIMESTAMP, DATE -- tiempo
UUID -- identificadores únicos
JSONB -- JSON estructurado
JSON vs JSONB
JSONB almacena JSON en formato binario, lo que permite indexación y consultas más rápidas. Prefiere JSONB en la mayoría de los casos.
CREATE TABLE events (
id SERIAL PRIMARY KEY,
payload JSONB NOT NULL
);
SELECT payload->>'type' AS type
FROM events
WHERE payload->'meta'->>'source' = 'web';
Indexar JSONB
CREATE INDEX events_payload_gin
ON events USING GIN (payload);
Los índices GIN hacen que las consultas JSONB sean mucho más rápidas.