Geek Social — Documentação
Banco de dadosTables

collection_field_schema

Mapeamento entre coleção e os field_definitions visíveis nos itens.

Tabela de junção que define quais campos customizados aparecem em itens de uma coleção específica, em que ordem, e quais são obrigatórios.

Cada row vincula uma collection a uma field_definition. Sem registro aqui, o campo não aparece no form de novo item nem na visualização. O usuário pode reordenar arrastando na UI (atualiza display_order).

Colunas

ColunaTipoNullableDefault
id uuidNOT NULLgen_random_uuid()
collection_iduuidNOT NULL
field_definition_iduuidNOT NULL
is_requiredbooleanNOT NULLfalse
display_orderintegerNOT NULL0

primary key   unique

Funcionalidade dos campos

  • id — UUID, PK
  • collection_id — FK pra collections, cascade delete (ao apagar coleção, schema some)
  • field_definition_id — FK pra field_definitions. Sem cascade — apagar uma definition do sistema quebra schemas que a usam (não fazemos isso; usar is_hidden em vez).
  • is_required — se true, item da coleção precisa preencher esse campo no save
  • display_order — inteiro pra ordenar na UI. Default 0; ordem ascendente. Pode haver empate; tiebreaker é id na practice mas não enforced.

Foreign keys

Coluna(s)ReferênciaON DELETEON UPDATE
collection_idcollections.idcascadeno action
field_definition_idfield_definitions.idno actionno action

Índices

Esta tabela não tem índices customizados.

Não há índices secundários customizados. Lookups são por collection_id (poucos rows por coleção, ~5-15).

Constraints

  • PRIMARY KEY (id)

Não há unique constraint enforced em (collection_id, field_definition_id) — em teoria a app evita duplicação, mas DB não bloqueia. Pendência: adicionar uniqueIndex para evitar inconsistência.

Padrões de uso

  • Adicionar campo a uma coleção — INSERT
  • Reordenar — UPDATE display_order de múltiplos rows (transação)
  • Marcar obrigatório — UPDATE is_required
  • Remover — DELETE. Campos nos itens existentes não são removidos do JSONB items.fields (preserva dado), só somem da UI.

Tabelas relacionadas

On this page