00_hub.sql — Hub central
1 tabela(s) · 121 linhas de DDL · ver arquivo
Tipos ENUM
| Tipo | Valores |
|---|---|
sexo | masculino, feminino |
estado_civil | solteiro, casado, divorciado, viuvo, uniao_estavel |
nacionalidade | brasileira, naturalizado, estrangeiro |
Objetos de banco
| Função |
|---|
set_update_timestamp() |
| Trigger |
|---|
trg_pessoa_atualizado_em |
Índices declarados
| Índice | Tabela |
|---|---|
idx_pessoa_data_nascimento | pessoa |
idx_pessoa_sexo | pessoa |
idx_pessoa_classe | pessoa |
idx_pessoa_nome_trgm | pessoa |
idx_pessoa_nome_social | pessoa |
Tabelas
pessoa
Hub central: registro base de cada persona fictícia. Todas as tabelas satélites referenciam pessoa.id.
| Coluna | Tipo | Nulo? | FK | Default | Constraints |
|---|---|---|---|---|---|
id | UUID | não | — | uuid_generate_v4() | PK |
nome_completo | TEXT | não | — | — | — |
nome_social | TEXT | sim | — | — | — |
data_nascimento | DATE | não | — | — | CHECK (data_nascimento < CURRENT_DATE) |
sexo | sexo | não | — | — | — |
nacionalidade | nacionalidade | não | — | 'brasileira' | — |
cidade_nascimento | TEXT | sim | — | — | — |
uf_nascimento | CHAR(2) | sim | — | — | CHECK ( uf_nascimento IS NULL OR uf_nascimento ~ '^[A-Z]{2}$' ) |
classe_social | TEXT | sim | — | 'C1' | — |
estado_civil | estado_civil | sim | — | 'solteiro' | — |
esta_vivo | BOOLEAN | sim | — | TRUE | — |
data_obito | DATE | sim | — | — | — |
criado_em | TIMESTAMPTZ | sim | — | now() | — |
atualizado_em | TIMESTAMPTZ | sim | — | now() | — |
Constraints de tabela
CONSTRAINT chk_pessoa_obito CHECK ( data_obito IS NULL OR data_obito >= data_nascimento )
CONSTRAINT chk_pessoa_vivo_obito CHECK ( esta_vivo = TRUE OR data_obito IS NOT NULL )