2017-07-13 7 views
0

J'ai une base de données qui va stocker un certain nombre d'utilisateurs et les éléments appartenant à ces utilisateurs. les utilisateurs et les éléments seront stockés en tant que nœuds. Mon approche initiale était d'avoir un nœud utilisateur avec des propriétés de nom d'utilisateur, email et article avec le nom de propriétés et leur catégorie, leur être inbetween de relatiohsip:Comment les relations multiples pour un seul nœud affectent les performances d'une base de données neo4j

(item)-[BELONGS_TO]->(user) 

Après avoir lu un article dans le neo4j blog, je me suis déplacé la propriété catégorie dans un noeud séparé, car il peut appartenir à plusieurs éléments.

enter image description here

Ce que je suis préoccupé par est que maintenant dans un scénario de milliers d'articles, des nœuds de catégorie auraient des milliers de relations. Comment cela affecterait-il la performance globale si je devais rechercher un seul article et les catégories auxquelles il appartient?

Répondre

1

Les nœuds denses sont en effet un problème (et il existe plusieurs approches pour augmenter les performances/résoudre le problème). Cela dit, la densité est ici du côté de la catégorie (1 catégorie ayant des milliers de relations avec des objets). Si votre point d'entrée dans le graphique est l'élément cependant ... obtenir toutes les catégories auxquelles il appartient (quelques-unes que j'imagine) ne devrait pas causer de problèmes.

Espérons que cela aide, Tom

1

Vous pouvez éviter d'avoir à créer les Category nœuds et les relations par indexing la propriété category de Item nœuds. Cela vous permettra de trouver rapidement tous les éléments qui appartiennent à une seule catégorie.