我想汇总来自不同来源的数据,Twitter lastfm和那种。我只是无法弄清楚如何存储数据。显然在数据库中,我无法弄清楚如何使表格保持所有这些数据的抽象性,而不会影响对每列中数据的逻辑理解。 我想知道是否有其他人有这方面的经验,现在他们用铁轨来解决它。
答案 0 :(得分:1)
您需要的是面向文档的数据库(我建议您使用MongoDB),然后使用一组适配器,每种类型的提供程序都有一个适配器。
答案 1 :(得分:1)
如果你想坚持使用SQL,一个选项就是拥有一个模型/表,其中包含每个数据源(标题,网址,摘要)共有的字段,这些字段与包含特定字段的其他模型/表相关联个人数据源。这种关联可以是规则的或多态的。如果你想进入一些元编程,你可以使用method_missing将“共同”模型中不存在的字段的方法调用委托给相关的模型。这对于多态连接最有效。 Psudeo-代码:
class DataSource
belongs_to :data_source_extension, :polymorphic => true
def method_missing(method)
if data_source_extension.responds_to? method
data_source_extension.send(method)
else
super
end
end
end
另一个选项是STI,所以一个包含所有字段的表和一个'type'字段告诉Rails应该包含哪个模型的记录。这取决于你有多少不同的来源以及它们各自有多少不同其他。
如果字段不需要可搜索,则在文本字段中存储哈希效果很好。请参阅序列化和attr_bucket gem。
或者,如果你想要时髦,NoSQL类型数据库允许生成即时字段。