有人可以为这个用例推荐一个好的数据结构/方法吗?我正在使用 Ruby/Rails 和 MySQL。
我有一个包含数万种产品的产品 Feed(包含价格、网址、产品代码等)。我每天访问一次提要,并希望将产品信息存储到一个可快速访问的散列中,一旦程序停止运行,该散列就会保留在数据库中。
这个(可能非常大)散列应该是它自己的类,还是 Product 类的序列化属性?
我的伪代码:
将产品 Feed 数据保存到哈希中并存储在数据库中:
all_products_hash = Hash.new
product_feed = get_feed_api()
product_feed.for_each |product| do
updated_product = Product.new(product.url, product.code, product.price)
all_products_hash[product.url] = updated_product
end
all_products_hash.save
检索哈希内容(不确定如何从数据库检索哈希):
a_product = all_products_hash.get['url']
哈希值的关键是product.url。我是否正确初始化了哈希值?非常感谢您的建议!
最佳答案
不要使用哈希。您可以将 SQLite 与文件存储结合使用,这还允许您进行查询、基本索引等。如果您关心内存与文件存储性能,请阅读 Quickly dumping a database in memory to file .
作为 ruby sqlite 连接器,您可以使用 https://github.com/sparklemotion/sqlite3-ruby
希望有帮助。
关于ruby-on-rails - 在 Ruby 数据库中存储使用自定义类的哈希值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28558009/