Question

J'essaie de comprendre comment mieux mettre en œuvre pour mon système ... et obtenir ma tête hors de l'espace SGBDR pour le moment ...

Une partie de mon DB actuel a trois tables: Show, ShowEntry, et l'entrée. Fondamentalement ShowEntry est un nombre à plusieurs tableau de jonction entre Salon et entrée. Dans ma façon de penser SGBDR, il est tout à fait logique puisque tout changement pour afficher les détails peuvent se faire en un seul endroit, et même avec l'entrée.

Quelle est la meilleure façon de tenir compte dans un stockage basé sur des documents? Je suis sûr qu'il n'y a pas une façon de faire cela, mais je ne peux que penser si le stockage à base de documents est approprié pour ce cas.

Pour votre information, je suis en train d'examiner la mise en œuvre RavenDB. Alors que les discussions sur la conception NoSQL générale sera plus bon RavenDB concentré on sera fantastique!

Merci, D.

Était-ce utile?

La solution

Lors de la modélisation d'un grand nombre à plusieurs dans une base de données de documents, vous stockez habituellement une collection de clés étrangères dans un seul des documents. Le document que vous choisissez dépend en grande partie de la direction vous avez l'intention de traverser la relation. D'une façon traversant est trivial, traversant l'autre sens nécessite un index.

Prenons l'exemple du panier des achats. Il est plus important de savoir exactement quels sont les éléments dans un panier particulier que des paniers qui contiennent un élément particulier. Depuis que nous suivons habituellement la relation dans le sens panier à l'article, il est plus logique d'ID de l'objet du magasin dans un panier qu'il fait pour stocker les ID de panier dans un article.

Vous pouvez toujours traverser la relation dans le sens opposé (par exemple trouver des paniers contenant un élément particulier) en utilisant un indice, mais l'indice sera mis à jour en arrière-plan afin qu'il ne sera pas toujours précis à 100%. (Vous pouvez attendre l'index pour devenir une grande précision avec WaitForNonStaleResults, mais ce délai montrerez dans votre interface utilisateur.)

Si vous avez besoin immédiatement une précision de 100% dans les deux sens, vous pouvez stocker des clés étrangères dans les deux documents, mais votre application devra mettre à jour deux documents chaque fois qu'une relation est créée ou détruite.

Autres conseils

Cette a une longue chemin vers la résolution de ma question!

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