Redis
 sql >> Base de données >  >> NoSQL >> Redis

En utilisant MongoDB comme base de données principale, dois-je utiliser une base de données de graphes distincte pour implémenter les relations entre les entités ?

Michel,

vous devriez pouvoir stocker vos données de relation dans la base de données graphique. Ses hautes performances sur la traversée de grands graphes proviennent de la localité, c'est-à-dire que vous n'exécutez pas de requêtes globalement mais que vous démarrez plutôt un ensemble de nœuds (ce qui correspond à des documents dans votre cas, qui sont recherchés par un index. vous pouvez même stocker start-node- ids pour un accès rapide dans vos documents mongo). À partir de là, vous pouvez traverser des chemins arbitrairement grands en temps constant (par rapport à la taille de l'ensemble de données).

Quelles sont vos autres exigences (c'est-à-dire la taille de l'ensemble de données, le nombre d'accès simultanés, etc., la complexité des relations/graphiques).

Vos requêtes correspondent vraiment bien à la base de données de graphes et sont facilement exprimables dans ses termes.

Je vous suggérerais simplement de saisir un graphdb comme neo4j et de faire un pic rapide avec votre domaine pour vérifier la faisabilité générale et également trouver des questions supplémentaires auxquelles vous aimeriez avoir des réponses avant d'investir dans la deuxième technologie.

PS Si vous n'aviez pas encore commencé, vous auriez également pu opter pour une approche purement graphdb, car les bases de données de graphes sont un sur-ensemble des bases de données de documents. Et vous préférez de toute façon parler de domaine dans votre cas plutôt que de simples documents génériques. (Par exemple, structr est un CMS construit sur Neo4j).