Padrão Banco de Dados

· Padrão Banco de Dados
Juan Kalleo
Juan Kalleo
Backend/API

Tecnologia principal: PostgreSQL + ActiveRecord (Ruby on Rails 8). Camada separada de propósito do Padrão API: lá é contrato HTTP, aqui é schema, migration e model. As duas camadas convivem no mesmo projeto, mas merecem cada uma sua própria régua.

Visão geral

Esta área documenta como modelar schema numa API Rails multi-tenant: convenção de nome de tabela, como a hierarquia de tenant é representada no banco, trilha de auditoria, soft delete, e a disciplina de migration que mantém tudo isso consistente conforme o projeto cresce. PostgreSQL, ActiveRecord — sem exagero de abstração: regra simples, aplicada sem exceção.

Modelagem base

Modelagem base documenta o que todo model ganha de graça ao herdar de ApplicationRecord — auditoria, soft delete, versionamento, limite de tamanho de campo — sem precisar declarar nada disso de novo a cada model.

Nomenclatura e módulos

Nomenclatura e módulos documenta o prefixo de uma letra por módulo de negócio (a_, g_, c_) — o que cada um significa e a única exceção deliberada à regra.

Multi-tenancy

Multi-tenancy documenta a hierarquia tenant → órgão → unidade → usuário, o schema por trás dela, e onde o isolamento entre tenant é de fato aplicado.

Tabela de referência em vez de enum

Tabela de referência em vez de enum documenta uma regra deliberada deste projeto: zero enum do Rails, zero string mágica — todo campo que "parece enum" vira tabela própria com FK.

Migrations

Migrations documenta o formato de migration seguido neste padrão: idempotente, up/down explícitos, e as colunas de auditoria que entram por padrão em toda tabela nova.

Tecnologias

Tecnologias cobre PaperTrail (versionamento) e paranoia (soft delete) — o quê, o porquê, a versão e um exemplo de uso de cada uma.