Redis
 sql >> Database >  >> NoSQL >> Redis

Utilizzando MongoDB come database principale, dovrei utilizzare un database grafico separato per implementare le relazioni tra le entità?

Mike,

dovresti essere in grado di memorizzare i dati della tua relazione nel database del grafico. Le sue elevate prestazioni nell'attraversare grandi grafici provengono dalla località, ovvero non esegui query a livello globale ma piuttosto avvii un insieme di nodi (che nel tuo caso sono uguali a documenti, che vengono cercati da un indice. potresti persino memorizzare start-node- ID per un rapido accesso ai tuoi documenti mongo). Da lì puoi attraversare percorsi arbitrariamente grandi in tempo costante (rispetto alle dimensioni del set di dati).

Quali sono gli altri tuoi requisiti (ad es. dimensione del set di dati, numero di accessi simultanei ecc., complessità della relazione/del grafico).

Le tue query si adattano davvero bene al database dei grafici e sono facilmente esprimibili nei suoi termini.

Ti suggerirei di prendere un graphdb come neo4j e fare un rapido picco con il tuo dominio per verificare la fattibilità generale e anche scoprire ulteriori domande a cui vorresti avere una risposta prima di investire nella seconda tecnologia.

PS Se non avessi ancora iniziato, avresti potuto anche utilizzare un approccio graphdb puro poiché i database di grafi sono un superset di database di documenti. E preferiresti comunque parlare di dominio nel tuo caso piuttosto che solo documenti generici. (Ad esempio, structr è un CMS basato su Neo4j).