在 Rails 中存储约 1000 个元素的字符串数组的首选方法是什么?

What is the preferred way to store a ~1000 element array of Strings in Rails?

在我的 Rails 应用程序中,我将有一个包含 1000 个动物名称的数组。所以,基本上是字符串。这些名称将永远不会有任何更多与之相关的数据。我认为为他们制作动物 table 有点过头了,因为我只使用 Array 对动物进行采样。

同时,我的项目中有REDIS,正在考虑做以下事情:

redis.set("animals", ["large", "array", "of", "animals", ...].to_json)

我不确定这是否有问题,我是否应该担心我正在存储 1000 个元素的数组。我知道那里有巨大的数据集,但是 1000 有什么值得担心的吗?

也许我应该将它们存储在 .txt 文件中?每行一只动物,所以我只使用 lines = File.foreach("animals"); lines.sample?

解决这个问题的最佳方法是什么?

1000 行对他们自己来说足够了 model/table。几十年来,数据库一直被使用、滥用和完善。除非您有充分的理由怀疑性能问题,否则矫枉过正并不是真正的问题,这是不太可能的,即使如此,正如他们所说,过早的优化也是万恶之源。让您的代码保持整洁并易于扩展。例如,在 animal.rb:

# return a random animal
def self.sample
  offset(rand(count)).first
end

只要您需要样本(大概在控制器中),它就像 Animal.sample 一样简单。您可能稍后会决定要与这些动物建立更多联系。