Skip to main content

Modelo de Dados

O banco de dados do projeto está classificado como “item a ser definido” no documento de escopo. Esta seção será atualizada conforme a definição da tecnologia e modelagem.

Considerações Arquiteturais

A escolha do banco de dados é uma decisão crítica para o Promete, especialmente considerando a natureza do módulo de Relacionamento, que propõe um grafo de vínculos entre pessoas, organizações e territórios.

Desafios de Modelagem

DesafioDescrição
Grafo de relacionamentosConsultas que envolvem múltiplos níveis de vínculo (ex: “pessoas ligadas a organizações de um território que têm demandas sobre saúde”) exigem modelagem otimizada
Volume de dadosO sistema deve suportar dezenas de milhares de contatos com histórico completo de interações
PerformanceConsultas complexas no grafo não podem comprometer o tempo de resposta da aplicação
FlexibilidadeNovos tipos de relacionamento e atributos devem poder ser adicionados sem reestruturação do banco

Abordagens Possíveis

AbordagemTecnologiaPrósContras
Relacional com otimizaçãoPostgreSQL (via Supabase)Maturidade, ecossistema, equipe familiarizadaConsultas de grafo complexas podem ser lentas
Banco de grafos dedicadoNeo4j, ArangoDBPerformance nativa para consultas de grafoComplexidade adicional na stack, curva de aprendizado
HíbridoPostgreSQL + extensão de grafosEquilíbrio entre familiaridade e performanceComplexidade de manutenção
Recomenda-se que a definição do banco de dados considere benchmarks com o volume esperado de dados e os padrões de consulta mais frequentes do módulo de Relacionamento.