Pergunta

Estou escrevendo um aplicativo Ruby que armazena dados do tipo ancestral. Ou seja, árvore genealógica.

Para o restante do aplicativo, estou usando o MongoDB para armazenamento, pois se presta a uma estrutura hierárquica, no entanto, os dados de ancestral não se encaixam exatamente nesse modelo, mesmo que seja hierárquico em certo sentido. Estou curioso para saber se alguém tiver uma sugestão sobre se eu deveria trocar em uma camada de banco de dados mais apropriada para lidar com isso?

O IE A é emparelhado com B (bidirecional) e tem os pais C e D. B tem pais E e F. A e B têm filhos G, H, I. G é emparelhado com H e assim por diante.

Portanto, não é completamente recursivo, pois um nó tem 2 nós pais. Portanto, incorporar não faz sentido no MongoDB, pois ambos os pais incorporariam a mesma árvore em duplicado. Está mais próximo de um gráfico social apenas mais rígido (há apenas 2 tipos de relacionamentos). Estou pensando que os conjuntos de redis funcionariam muito bem, mas antes de complicar a pilha com persistência de poliglota, eu esperava conseguir algum feedback de outros que possam ter projetado estruturas semelhantes. A outra preocupação que tenho com Redis está armazenando todas essas árvores na memória pode não ser uma ótima idéia, embora se eu estivesse apenas armazenando os relacionamentos em Redis com os dados do objeto nos documentos do MongoDB, provavelmente seria bom.

Foi útil?

Solução

Talvez você deva experimentar um banco de dados de gráficos, pois parece muito mais próximo do domínio. E há alguns por aí que você pode experimentar http://nosql.mypopescu.com/post/498705278/quick-review-of-existing-graph-databases

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top