Ruby on rails Rails应用程序的数据模型和存储

Ruby on rails Rails应用程序的数据模型和存储,ruby-on-rails,database,model,data-modeling,Ruby On Rails,Database,Model,Data Modeling,目前,我正在使用RubyonRails构建一个web应用程序。我试图了解数据模型和数据库部分。为了便于理解,我将使用IFTTT作为类比: 在应用程序中,用户可以添加不同的配方,例如: Facebook-Twitter 天气-发送电子邮件 你说得对 当然,每个配方都有自己的字段和选项。因此,用户可以从库中选择多个配方,并为每个配方设置选项。配方库是在代码中定义的 关于此设置,我有几个问题,如果我能得到一些指导,我将非常高兴: 将配方的选项序列化到单个数据库字段是否明智?每个配方都有不同的字段,

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

在应用程序中,用户可以添加不同的
配方
,例如:

  • Facebook-Twitter
  • 天气-发送电子邮件
  • 你说得对
当然,每个配方都有自己的字段和选项。因此,用户可以从库中选择多个配方,并为每个配方设置选项。配方库是在代码中定义的

关于此设置,我有几个问题,如果我能得到一些指导,我将非常高兴:

  • 将配方的选项序列化到单个数据库字段是否明智?每个配方都有不同的字段,我不希望每个配方类型都有一个数据库表
  • 还是创建一个包含所有配方选项的“键值”表更好
  • 如何处理验证?能派上用场吗
  • NoSQL数据库是否适合这些类型的应用程序
  • 这些类型的应用程序/数据模型是否有最佳实践?欢迎任何帮助

    谢谢


    伦斯(Rens)

    不确定这样的问题是不是最好的回答方式,但我会考虑一下

    1&&2)就个人而言,我会给
    recipe
    表一个
    action\u taked
    字段,可能是一个字符串,所有可用的结果操作的字段都是布尔值。那么,您真正需要注意的唯一一件事就是确保所采取的
    操作
    字段保持一致

    3) ActiveRecord有一个非常丰富的内置功能。您可以基于存在性、唯一性、包含在一组元素中等进行验证。如果您觉得非常安全,还可以对数据库进行额外验证

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


    希望这有帮助

    查看postgres hstore。我认为noSQL不是启动rails应用程序的好主意。