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?

Foi útil?

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.

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