我有一个约10000个文档的集合,每个文档包含几个SQLite数据库。(*)
我正在考虑根据文档标识符自动子类化我为这些db中包含的表编写的ActiveRecord模型,因此我可以分别在每个类上调用establish_connection。
class Document < ActiveRecord::Base
end
class Document_xyz < Document
establish_connection(.../xyz.sqlite)
end
这是可行的,或者我应该尝试合并所有的数据库在一起以某种方式(可能通过前缀ID表名,或作为一个列(?)),所以我可以只做一个连接?
*注意:我不能改变这个文件设置,因为它在其他地方使用,但我正在制作一个web界面,所以我正在研究处理如此大量的db的可能性。
每个模型可以打开任意数量的数据库连接。也就是说,每个模型只有一个连接会更好,更容易编码和使用。但是这么多的连接会消耗大量的机器资源,所以……遍历所有不同的数据库,对其内容进行grep,并将其全部写入单个数据库文件(如果可能的话,不要忘记为有效的关系建模)。
之后,处理数据库应该相当快&一件容易的事。
这可能需要大量的资源。
你可以写一个rake任务,将数据库转换成json模板,然后你可以操作数据,但你认为合适,而不需要太多的关注服务器资源。
你真的应该要求sqlite数据库的json表示由供应商提供