MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Armazenando hierarquia de diretórios em um repositório de dados de valor-chave


O método que você usa atualmente é chamado de modelo de lista de adjacência.

Outro modelo para armazenar dados hierárquicos em um banco de dados (relacional) é o modelo de conjunto aninhado. Sua implementação em bancos de dados SQL é bem conhecida. Consulte também este artigo para o algoritmo de passagem de árvore de pré-ordem modificado.

Um método muito simples:você pode armazenar um caminho por objeto - com eles deve ser fácil consultar árvores em bancos de dados NOSQL:
{ path: "Color", ... }
{ path: "Color.Red", ... }
{ path: "Color.Red.Apple", ... }
{ path: "Color.Red.Cherry", ... }

Quando os nós forem removidos ou renomeados, alguns caminhos devem ser atualizados. Mas, em geral, esse método parece promissor. Você só precisa reservar um caractere especial como separador. A sobrecarga de espaço de armazenamento deve ser insignificante.

edit:este método é chamado de caminho materializado

Finalmente, aqui está uma comparação de diferentes métodos para dados hierárquicos em bancos de dados NOSQL.