NOSQL/RAVEN DB MELHORES PRÁTICAS
-
26-09-2019 - |
Pergunta
Estou investigando um novo projeto que será um site de estilo de rede social. Estou lendo no Ravendb e gosto da aparência de muitos de seus recursos. Eu não li muito no Nosql, mas estou me perguntando se há um nicho que se encaixa melhor e o SQL da velha escola ainda é a melhor escolha para outras coisas.
Estou pensando que o plug de permissões seria ideal para um site de estilo de rede social - mas ele realmente executará em um ambiente em que o banco de dados estará sendo martelado - ou é otimizado para um sistema de estilo mais relatório, onde é possível manter lançar novas estruturas de dados no banco de dados e relatar essas estruturas.
Estou ansioso para usar a ferramenta certa para o trabalho - usarei o MVC3, Windsor + Nibernate + SQL Server ou RavendB.
Devo ficar com o SQL da velha escola ou ir com o novo garoto no quarteirão: Ravendb?
Solução
Essa pergunta pode ficar muito perto de ser subjetiva (mesmo que realmente não seja), você está falando sobre o NOSQL como se fosse apenas uma coisa, e esse não é o caso.
Você tem
- bancos de dados de gráficos (neo4j etc),
- Mapear/reduzir bancos de dados de documentos de estilo (Couch, Raven),
- Bancos de dados de documentos que tentam parecer bancos de dados comuns (mongo),
- Lojas de chave/valor (Cassandra etc)
- Moar vai aqui.
Cada um deles tenta resolver um problema diferente por meio de diferentes meios e se você usaria um deles em uma loja relacional tradicional é
- Uma questão de adequação
- Uma questão de preferência pessoal
No final do dia, para o Primário O armazenamento de dados para um único sistema, um banco de dados de documentos ou um armazenamento relacional é provavelmente o que você deseja, embora, para diferentes partes do seu sistema, você possa acabar utilizando um banco de dados de gráfico (para calcular vizinhos etc.) ou um armazenamento de chave/valor ( Como o Facebook/fez para as mensagens da caixa de entrada).
O principal benefício de escolher uma loja de documentos como sua loja primária sobre a de uma relacional é que você não precisa se preocupar em tentar mapear seus objetos em uma coleção de tabelas, e há menos sobrecarga de configuração envolvida no fazê -lo .
A outra desvantagem/vantagem seria que você precisa aprender algo novo e cometer erros ao longo do caminho.
Então, minha resposta se eu vou ser direto?
- Ravendb seria adequado
- SQL seria adequado
Qual você prefere usar? Hoje em dia eu provavelmente iria para Raven, sabendo que posso despejar dados em uma loja relacional para fins de relatórios e provavelmente fiz Através do esforço de definir lojas de leitura/gravação separadas, é uma vitória geral.
Mas sou eu, e sou tendencioso.