Farò un'applicazione con molti articoli simili (milioni), e vorrei memorizzarli in un database MySQL, perché mi piacerebbe fare molte statistiche e cercare valori specifici per colonne specifiche.È una buona idea usare MySQL e Neo4j insieme?
Ma allo stesso tempo, memorizzerò le relazioni tra tutti gli elementi, che sono correlati in molte strutture binari ad albero collegate (chiusura transitiva), e le banche dati delle relazioni non sono adatte a quel tipo di strutture, quindi vorrebbe memorizzare tutte le relazioni in Neo4j che hanno buone prestazioni per questo tipo di dati.
Il mio piano è di avere tutti i dati tranne le relazioni nel database MySQL e tutte le relazioni con item_id
memorizzate nel database Neo4j. Quando voglio di ricercare un albero, in primo luogo ho cerco la Neo4j per tutta la item_id
: s nell'albero, quindi cerco il MySQL database per tutti gli elementi specificati in una query che sarà simile:
SELECT * FROM items WHERE item_id = 45 OR item_id = 345435 OR item_id = 343 OR item_id = 78 OR item_id = 4522 OR item_id = 676 OR item_id = 443 OR item_id = 4255 OR item_id = 4345
È una buona idea o mi sbaglio? Non ho mai usato i database grafici. Ci sono approcci migliori al mio problema? Come funzionerebbe la query MySQL in questo caso?
Potrebbe sostituire il diverso "OR" con una clausola "IN" :) – Mik378
@Jonas Cosa hai fatto. Sono interessato a sapere come hai risolto il problema? – Medorator
Per i nuovi lettori di questa domanda: Nel libro [Sviluppo aziendale continuo in Java] (http://shop.oreilly.com/product/0636920025368.do) e [questo codice] (https://github.com/arquillian/continuous-enterprise-development) utilizza questa soluzione architettonica. C'è un capitolo che giustifica la scelta di mescolare i due database. – Mats