【问题标题】:Is it a good idea to use multiple database systems and ORMs in a single Rails app?在单个 Rails 应用程序中使用多个数据库系统和 ORM 是个好主意吗?
【发布时间】:2014-05-12 07:25:38
【问题描述】:

更具体地说,我正在考虑在单个 Rails 4 应用程序中使用 PostgreSQL (ActiveRecord) 和 MongoDB (Mongoid)。

另外,模型之间的关联会起作用吗?类似的东西

class Customer < ActiveRecord::Base
    has_many :orders
end

class Order
    include Mongoid::Document
    belongs_to :customer
end

我知道 ActiveRecord 和 Mongoid 可以共存,但这是个好主意吗?

【问题讨论】:

  • 这不是对您问题的回答,而只是一个建议:最近的 postgres 版本具有可以索引和查询的 JSON 字段。 Mongodb 在处理 JSON 对象方面有更多的功能,但对于很多用例来说,这就足够了。您可能不需要两个数据库。
  • 这实际上很有帮助。从来不知道 postgres 可以处理 JSON。谢谢,@RikkusRukkus!
  • 我这样做了,它可以用几卷管道胶带将东西固定在一起。我认为您不会让跨数据库关系可靠地工作,最好手动完成以限制您的期望。

标签: ruby-on-rails mongodb postgresql activerecord mongoid


【解决方案1】:

我会认真思考并尝试选择其中一个数据库,即使您可以让它们在技术上协同工作。您必须考虑过去的编程并采取更大的视野。我想有一天你的应用程序会投入生产。这意味着 2 种不同的备份解决方案、2 种不同的监控解决方案、双倍的操作培训等。

亚历克斯·勒纳

【讨论】:

    【解决方案2】:

    绝对没问题。

    如果您的应用程序有不同类型的数据并且使用 mongodb 可以提高性能,为什么不呢?

    或者:

    您的应用程序是市场。您市场中的产品有共同的列 - 价格、名称等。将它们放在 postgresql 中。 此外,产品有许多参数并不通用(计算机 - 硬盘容量,显示器 - 显示器尺寸等)。您可以使用 mongodb 存储这些数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-10-19
      • 2012-02-23
      • 1970-01-01
      • 2012-09-29
      • 2012-03-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多