2010-08-23 21 views
16

Je pense que ces trois sont les db: s non relationnelles les plus populaires en ce moment.Cassandra, mongodb ou couchdb pour Ruby on Rails

Je veux essayer, mais je me demande laquelle est la plus appropriée pour Rails quand il s'agit de Gem, documentation et tutoriel.

Par exemple. si j'installe une très bonne gemme qui est pour Rails mais qui utilise simplement AR et mongodb, alors ce serait dommage que je n'utilise pas mongodb.

  • Combien de gemmes prennent en charge chacune de ces bases de données?

  • Lequel est le plus populaire et le plus courant dans la communauté ruby ​​/ rails, a donc plus de documentations/tutoriels en ligne?

  • Lequel offre une intégration étroite de Rails?

+12

Respectueusement, je pense que c'est le mauvais point de départ pour décider d'utiliser l'une de ces applications. Ils ont des forces et des faiblesses très différentes et, dans une large mesure, peu importe ce qui a le meilleur support ruby ​​/ rails si c'est complètement faux pour ce que votre application doit accomplir. –

+3

Si vous voulez la popularité et l'intégration étroite, MySQL est 100 fois plus populaire dans les déploiements Rails et facilement le plus étroitement intégré. Drizzle deviendra probablement un concurrent là aussi. Si vous cherchez à apprendre, je suggère d'essayer plusieurs DB jusqu'à ce que vous trouviez quelque chose qui vous semble confortable. – JasonSmith

Répondre

17

Pour faire une sélection éclairée, vous aurez vraiment besoin de connaître votre modèle de données. MongoDB et CouchDB sont des magasins de données orientés document. Cassandra est assez différente, c'est un peu plus spécial et son design distribué est sa force. Il s'agit davantage d'un magasin de clés/valeurs distribuées, mais avec un découpage en tranches, un tri d'horodatage, des requêtes de plage, avec des types de données limités. Si vous aviez une énorme quantité de données et saviez exactement comment cela devait être indexé pour être récupéré, Cassandra pourrait fonctionner. Mongo et Couch sont préférables pour les requêtes ad-hoc, et par exemple un remplacement d'AR pour une application Rails.

En ce qui concerne la popularité, je dirais que MongoDB est actuellement plus populaire auprès des rubis, mais en général CouchDB semble avoir plus d'esprit partagé et beaucoup d'élan. Voir aussi http://nosql-database.org/ pour plus d'informations sur les différences.

5

J'ai personnellement utilisé "mongoid" récemment et cela fonctionnait vraiment bien. Une chose à garder à l'esprit est qu'ils sont plus actifs dans la branche Rails 3.0, donc toutes les fonctionnalités listées sur leur site fonctionnent dans Rails 2.x (par exemple des références). J'ai également essayé d'utiliser "Devise/Warden" pour l'authentification et cela fonctionnait parfaitement dans Rails 3.0 mais ne supportait pas Rails 2.x + mongoid (bien que mongomapper était supporté)

+0

Grand que Devise travaille avec Mongodb! Savez-vous si elle prend en charge les 2 autres? –

+1

Voici ce qui est supporté dans master (Rails 3.x): http://github.com/plataformatec/devise/tree/master/lib/devise/orm/ et voici ce que dans 1.0.x (Rails 2.x): http : //github.com/plataformatec/devise/tree/v1.0/lib/devise/orm – Zepplock

+1

me semble que mongodb est le plus populaire pour le rubis et les rails. c'est correct pour d'autres gemmes aussi vous pensez? –