【问题标题】:Data model and storage for Rails appRails 应用程序的数据模型和存储
【发布时间】:2016-03-22 17:30:53
【问题描述】:

目前正在使用 Ruby on Rails 构建一个 Web 应用程序。我试图了解数据模型和数据库部分。为了便于理解,我将使用 IFTTT 作为类比:

在应用中,用户可以添加不同的recipes,例如:

  • 脸书-推特
  • 天气 - 发送电子邮件
  • 你的名字...

当然,每个食谱都有自己的字段和选项。因此,用户可以从库中选择多个食谱并为每个食谱设置选项。配方库是在代码中定义的。

我对此设置有几个问题,如果我能得到一些指示,我会很高兴:

  1. 将配方的选项序列化到单个数据库字段中是否明智?每个菜谱都有不同的字段,我不希望每个菜谱类型都有一个数据库表。
  2. 还是创建一个包含所有配方的所有选项的“键值”表更好?
  3. 如何处理验证? Virtus能派上用场吗?
  4. NoSQL 数据库是否适合此类应用程序?

这些类型的应用程序/数据模型是否有最佳做法?欢迎任何帮助。

谢谢!

伦斯

【问题讨论】:

  • 查看 postgres hstore。我认为使用 noSQL 来启动 rails 应用程序不是一个好主意。

标签: ruby-on-rails database model data-modeling


【解决方案1】:

不确定 SO 是否是解决此类真正一般性问题的最佳地点,但我会尝试一下

1 && 2) 就我个人而言,我会给recipe 表一个action_taken 字段,可能作为一个字符串,以及所有可用的字段作为布尔值。那么你真正需要注意的唯一一件事就是确保action_taken 字段保持一致

3) ActiveRecord 内置了一个非常充实的validation suite。您可以根据存在性、唯一性、包含在一组元素中等进行验证。如果您想更加安全,还可以对数据库进行额外验证

4) 我会使用 PostgreSQL,它似乎是社区标准,所以如果你需要它可能最容易获得支持

希望对你有帮助

【讨论】:

    猜你喜欢
    • 2014-09-03
    • 2013-04-14
    • 1970-01-01
    • 2019-04-07
    • 1970-01-01
    • 2012-06-23
    • 1970-01-01
    • 1970-01-01
    • 2016-07-15
    相关资源
    最近更新 更多