Direi che hai risposto alla tua domanda qui.
Ho un buon motivo per utilizzare MongoDB per una parte della mia app.
Supponendo che si abbia anche una buona ragione per tenere altre parti in MySQL, direi che la risposta è sì. La tua domanda implica (almeno per me) che tu abbia una comprensione buona e ben studiata delle varie opzioni e dei loro punti di forza e debolezza e hai quindi raggiunto una conclusione ragionevole in quanto la suddivisione dei tuoi modelli è fattibile.
Supponendo che le due metà non siano collegate in qualche modo (le relazioni tra i due suoni come una ricetta per il dolore in seguito), suggerirei di provarci e utilizzare ogni strumento per ciò che è meglio.
È possibile affrontare alcune delle preoccupazioni che Michael solleva con questo approccio. poiché ti stai concentrando sull'uso di Rails, puoi utilizzare ActiveRecord per i tuoi modelli basati su MySQL e utilizzare MongoMapper per i tuoi modelli basati su MongoDb. In questo modo, non dovrai affrontare due metodi di interrogazione completamente diversi poiché MongoMapper fornisce un approccio molto ActiveRecordish. Ovviamente, puoi facilmente passare alle query specifiche di Mongo come e quando è necessario.
La preoccupazione per le relazioni cross-DB è valida a mio parere e se questo è qualcosa che si finisce per avere un sacco di, consiglierei sicuramente di esaminare la situazione per assicurarsi che questo è qualcosa che sei felice di vivere con. Immagino che potresti risparmiare un sacco di dolore per dopo in quel particolare caso.
Nel complesso, suggerirei che finché le due metà sono relativamente disconnesse l'una dall'altra, un livello di persistenza della personalità diviso funzionerà bene per voi.
fonte
2010-03-19 09:13:23
Grazie fantastici per l'esempio del mondo reale! –
Utilizzate un connettore CouchDB o chiamate direttamente tramite REST direttamente? Ho uno scenario che ha senso usare entrambi, e non sono sicuro che un livello di record attivo nel mezzo sia utile dato che le chiamate saranno recuperate ed eseguite. – eddieroger