Léxico de TI › Bancos de dados › Lista de adjacência

Lista de adjacência adjacency list

Bancos de dados Svenska → Atualizado: 2026-09-28

A forma mais simples e comum de armazenar uma árvore em SQL: cada linha tem um parent_id apontando para o pai. Fácil de entender e atualizar, mas buscar subárvores inteiras exige consultas recursivas.

Mecânica: uma tabela autorreferenciada em que parent_id é uma chave estrangeira para a própria chave primária da tabela; nós raiz têm NULL. Vantagem: é trivial adicionar ou mover nós (basta trocar um parent_id), de forma natural e normalizada. Preço: buscar todos os descendentes ou ancestrais exige várias consultas (uma por nível) ou uma CTE recursiva (WITH RECURSIVE) — que pode ficar lenta em árvores profundas. É o modelo clássico por onde se começa; se as leituras de subárvore virarem um gargalo, migra-se para materialized path, nested set ou closure table. A maioria dos ORMs já dá suporte direto. É a escolha padrão para hierarquias moderadas (categorias, threads de comentários, árvores organizacionais). Relacionado a consulta recursiva e materialized path.

← Voltar ao léxico