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

Bancos de dados de documentos:dados redundantes, referências, etc. (especificamente MongoDB)


Existem basicamente dois cenários:fresco e obsoletos .

Dados atualizados


Armazenar dados duplicados é fácil. Manter os dados duplicados é a parte difícil. Portanto, a coisa mais fácil a fazer é evitar a manutenção, simplesmente não armazenando dados duplicados para começar. Isso é útil principalmente se você precisar de dados novos . Armazene apenas as referências e consulte as coleções quando precisar recuperar informações.

Nesse cenário, você terá alguma sobrecarga devido às consultas extras. A alternativa é rastrear todos os locais de dados duplicados e atualizar todas as instâncias em cada atualização. Isso também envolve sobrecarga, especialmente em relações N-para-M como a que você mencionou. De qualquer forma, você vai tem alguma sobrecarga, se você precisar de dados novos. Você não pode ter o melhor dos dois mundos.

Dados obsoletos


Se você pode se dar ao luxo de ter dados obsoletos, as coisas ficam muito mais fáceis. Para evitar sobrecarga de consulta, você pode armazenar dados duplicados. Para evitar ter que manter dados duplicados, você não armazenará dados duplicados. Pelo menos não ativamente .

Nesse cenário, você também desejará armazenar apenas as referências entre documentos. Em seguida, use um trabalho periódico de redução de mapa para gerar os dados duplicados. Você pode consultar o resultado de redução de mapa único, em vez de coleções separadas. Dessa forma, você evita a sobrecarga de consulta, mas também não precisa procurar alterações de dados.

Resumo


Armazene apenas referências a outros documentos. Se você puder arcar com dados obsoletos, use trabalhos periódicos de redução de mapa para gerar dados duplicados. Evite manter dados duplicados; é complexo e sujeito a erros.