ruby-on-rails - 在 Ruby 数据库中存储使用自定义类的哈希值

标签 ruby-on-rails database serialization data-structures hash

有人可以为这个用例推荐一个好的数据结构/方法吗?我正在使用 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/

相关文章:

c# - 通过 SqlDataReader 从数据库中检索数据并将其转换为 JSON

ruby-on-rails - Rails 5.0.0.1 namspaced Controller 和渲染部分。漏洞?

php - 在开发、暂存和生产之间同步 Drupal 站点

ruby-on-rails - 我完成 rake db :migrate? 后如何在 ROR 3.0 中添加新列

java - 如何不同步 Hazelcast 中服务之间的所有 map

java - JsonMappingException : Can not find a deserializer for non-concrete Map type

ruby-on-rails - 如何实现每个用户每个评论一票?

将 URL 和电子邮件地址转换为可点击链接的 Javascript 函数

html - Rails 使用 content_for 并渲染相同的布局两次

php - 无法连接数据库?