Pergunta

Estou à procura de lojas de valor-chave NoSQL que também fornecem para armazenar / manter relacionamentos entre entidades armazenadas. Eu sei armazenamento de dados do Google App Engine permite relações de propriedade e sem dono entre entidades. Será que qualquer um dos populares NoSQL loja de fornecer algo semelhante?

Mesmo que a maioria deles são esquema menos, existem métodos para relações apropriadas para um armazenamento de chaves de valor?

Foi útil?

Solução

Ela pertence ao núcleo dispõe de gráfico de bancos de dados para fornecer suporte para as relações entre entidades. Normalmente, você modelar suas entidades como nós e as relações como relações / arestas no gráfico. Ao contrário RDBMS você não tem que definir relações com antecedência - basta adicioná-los ao gráfico conforme necessário (livre pelo esquema). Eu criei um href="http://wiki.neo4j.org/content/Domain_Modeling_Gallery" rel="nofollow noreferrer"> galeria modelagem dando alguns exemplos de como isso pode olhar na prática. Os exemplos usam o graphdb Neo4j, um projeto que estou envolvido. O href="http://neo4j.org/community/list/" rel="nofollow lista de discussão deste projeto usar para provar muito útil para questões de modelagem gráfico.

O banco de dados orientado a documentos Riak tem suporte para ligações entre documentos.

Você pode adicionar suporte para relacionamentos no topo de qualquer motor de banco de dados (como chave / valor), mas ele não vem whithout trabalho. Tudo se resume ao seu caso de uso. Se você fornecer mais detalhes, é mais fácil para chegar a uma resposta útil.

Opa, agora vi que eu que o título diz a "loja nosql" e, em seguida, sua pergunta real reduz este para baixo a "loja de valor de chave nosql". Como chave / lojas de valor não têm semântica para definir relacionamentos entre entidades Eu ainda vou postar minha resposta.

Outras dicas

MongoDB é um banco de dados documento, não um armazenamento de chave / valor. Ele prevê, no entanto, uma forma simples de referências inter-documentos . Estes funcionam mais ou menos como chaves estrangeiras SQL que são automaticamente nulled quando o objeto referenciado é excluído.

Este é adequada para os mesmos tipos de coisas para as quais você pode usar chaves estrangeiras, mas não é otimizado para graves travessia gráfico.

Os relacionamentos do Google App Engine são apenas chaves para as entidades que são automaticamente referenciados de-quando acessado no código. E são apenas valores quando usado para filtrar contra. Sua função da DB Api, em vez de qualquer coisa explícita, de modo que o acesso ao ReferenceProperty simplesmente executar uma consulta contra o modelo referenciado para obter acesso ao objeto.

Se você olhar para algo como MongoDB, as relações são armazenados em-objeto (pelo que eu lembre), mas eles também podem ser armazenados como quiser no sentido de que você iria criar uma API que iria procurar a tabela associada para seu item na relação de uma forma semelhante ao que o Google App Engine funciona.

Paul.

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