【问题标题】:Using yml as a data reference. Bad idea?使用 yml 作为数据引用。馊主意?
【发布时间】:2012-06-29 09:05:17
【问题描述】:

我需要大约 1,000 个单词才能让我的应用程序不断访问。我希望将其分离的原因是,我可以动态更改这 1000 个单词的含义。

但我不一定觉得这需要数据库注入。我觉得一个简单的 .yml 文件可以工作。

这是一个好习惯吗?如果是,最好的方法是什么?

可以在before_filter 调用中加载 1000 个单词吗?

【问题讨论】:

  • 将它们放入数据库

标签: ruby-on-rails database yaml


【解决方案1】:

不要认为在架构上这是正确的选择。

如果很少更改它们,那么您可以将它们放在常量类中。如果您打算经常更改它们,您将做的是写入文件系统并从中读取,这正是每个数据库所做的,但以更快和最佳的方式,您可以编写.

我的两分钱。让我们知道结果如何。

【讨论】:

  • 我每月只更改一次,即使这完全是可选的。我认为 YML 文件可以像外部 CD 一样工作。你插入一张新CD,你会得到新单词。这也是我不想使用数据库的原因,因为 1,0000 个单词可能是 1200 个单词,也就是 900 个。每个单词都有一个 :type。写这么长的哈希值会在架构上稳定吗? Yml 看起来很简单。
  • 所以你的字数不会超过或不少于 ~1000 个字,但每个月的字数会有所不同?
  • 正确。更像是用户完成了 1000 个单词。他们可以获得另外 1000 个单词。但该系统始终完全围绕这 1000 个从头开始工作。
  • 您是否考虑过面向文档的数据库,即 MongoDB?它可以准确地存储您需要的东西,没有关系让您放慢速度,几乎可以即时访问数据,快速读取,删除等?现在设置 MongoDB 实例并不难,它可以很好地与 RoR 配合使用。并且仍然比文件系统快。 :) 看看:mongodb.org/display/DOCS/Ruby+Language+Center
  • :D MongoDB 只是一个开始,那里有很多漂亮的 nosql 数据库。 :)
【解决方案2】:

除非确实需要,否则不要使用关系数据库。如果您的“单词”相对不可变,可以同时访问而无需多线程问题,您不需要查询等 - 它们最好在启动时为整个应用程序加载一些哈希 为每个 reuest 加载它们不是一个好主意。 (此建议与 ROR 无关)

【讨论】:

    猜你喜欢
    • 2011-11-21
    • 2010-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-19
    • 1970-01-01
    • 2021-08-15
    • 1970-01-01
    相关资源
    最近更新 更多