Question

Je cherche des magasins de valeur clés NoSQL qui fournissent également pour le stockage / le maintien des relations entre les entités stockées. Je sais que datastore Google App Engine permet des relations et possédiez unowned entre les entités. Est-ce que tout de quelque chose Offrons le magasin de NoSQL populaire similaire?

Même si la plupart d'entre eux sont des schémas moins, sont là des méthodes de relations appropriées sur un magasin de valeur clé?

Était-ce utile?

La solution

Il appartient aux caractéristiques essentielles de fournir un soutien pour les relations entre les entités bases de données graphiques . En règle générale, vous modélisez vos entités en tant que nœuds et les relations que les relations / arêtes dans le graphe. Contrairement à vous n'avez pas de définir les relations à l'avance - il suffit de les ajouter au graphique au besoin (sans schéma). J'ai créé un de modélisation de domaine donnant quelques exemples de la façon dont cela peut regarder dans la pratique. Les exemples utilisent le graphdb Neo4j, un projet que je suis impliqué. Le liste de diffusion de ce projet utiliser pour se révéler très utile pour les questions de modélisation graphique.

La base de données orientée document Riak supporte les liens entre les documents.

Vous pouvez ajouter le support pour les relations au-dessus de tout moteur de base de données (comme clé / valeur), mais il ne vient pas whithout travail. Tout se résume à votre cas d'utilisation. Si vous fournissez plus d'informations, il est plus facile de trouver une réponse utile.

Oops, maintenant j'ai vu que le titre dit « magasin NoSQL », puis votre question réelle se rétrécit vers le bas pour ce « magasin NoSQL valeur clé ». Comme les magasins clé / valeur ont pas de sémantique pour définir les relations entre les entités que je vais encore poster ma réponse.

Autres conseils

MongoDB est une base de données de documents, pas un magasin clé / valeur. Il ne fournit cependant une forme simple de références inter-documents . Ces travaux plus ou moins comme les clés étrangères SQL qui sont automatiquement Nulled lorsque l'objet référencé est supprimé.

Ceci est suffisant pour le même genre de choses pour lesquelles vous devriez utiliser les clés étrangères, mais il est pas optimisé pour traversal grave graphique.

Les relations dans le Google App Engine sont des clés uniquement à des entités qui sont automatiquement dé-référencé lors de l'accès au code. Et ne sont que des valeurs lorsqu'elles sont utilisées pour filtrer contre. Sa fonction de la DB Api plutôt que quoi que ce soit explicite, donc l'accès au ReferenceProperty sera simplement effectuer une requête sur le modèle référencé pour obtenir l'accès à l'objet.

Si vous regardez quelque chose comme MongoDB, les relations sont stockées dans l'objet (ce que je remeber), mais ils peuvent également être stockés comme vous le voulez dans le sens où vous devez créer une API qui recherche la table jointe pour votre article dans la relation d'une manière similaire à qui l'App Engine fonctionne.

Paul.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top