Sobes.tech
Junior — Middle

Que abordagem ou estrutura de dados você usaria para armazenar e exibir uma árvore genealógica em um banco de dados relacional?

sobes.tech IA

Resposta da IA

Para armazenar uma árvore familiar numa base de dados relacional, costuma-se usar a estrutura de "Lista de Adjacência". Na tabela, cada pessoa é armazenada com uma referência ao seu pai (por exemplo, o campo parent_id).

Exemplo de estrutura da tabela:

id nome parent_id
1 Ivan NULL
2 Maria 1
3 Alexei 1

Esta abordagem é simples de implementar e permite construir uma árvore consultando recursivamente os descendentes ou ascendentes.

Para consultas mais complexas, pode-se usar:

  • Conjuntos Aninhados — armazenamento dos limites esquerdo e direito para procurar rapidamente subárvores.
  • Caminho Materializado — armazenamento do caminho até o nó em forma de string.

Mas para a maioria das tarefas, a "Lista de Adjacência" é suficiente e bem suportada por consultas SQL padrão.