我有和app在哪里我为几个国家的邮政编码提供预测输入。 你可以想象,为了做到这一点,需要存储大量的数据。
我正在使用不同的数据库来存储多个国家/地区的数据。随着我支持更多国家,数据库的数量将会增长。我通过mongoid将它们存储在mongodb中。
我就是这样做的:
class France_codes
include Mongoid::Document
store_in session: "db_south_europe"
end
该会话在mongoid.yml中定义
production:
sessions:
default:
uri: "mongodb://...."
db_south_europe:
uri: "mongodb://...."
db_north_europe:
uri: "mongodb://...."
选择其中一个连接。 我得到国家名称并使其成为常数,以便我可以使用它的方法。
p = (country+"_codes").constantize
results = p.where(:cp => /^#{prefix}/).pluck(:pl)
到目前为止,我还没有看到任何问题。但我即将向系统添加另一个数据库。我现在有7个......
问题是:
以这种方式准备好使用多个数据库会话是不是很糟糕?或者这可以接受吗? 主要考虑内存占用,性能等 这些数据库是外部托管的,我到目前为止在Heroku运行它。在这种情况下,我们讨论的是从DB读取,没有任何内容从应用程序写入这些DB。虽然我有一些其他DB用于以相同的方式存储数据和设置。
感谢。