Rails:如何规划模型和数据库?

时间:2017-07-07 09:33:14

标签: ruby-on-rails database postgresql model

我对rails很新,我尝试使用带有postgresql的rails找到答案,但也许我认为它错了或在错误的地方搜索。所以这里是

让我们说我想做一个跟踪用户生活习惯(消费,储蓄等)的应用程序

我是否会执行以下操作:

  1. 用户模型 - 电子邮件,密码生活方式 - 食物,花费的金额 食品,运输,运输费用,账单,花费的金额 账单等....

  2. 用户模型 - 电子邮件,密码Lifestyle_food模型 - 花费的金额, 位置等Lifestyle_transport模型 - 花费的金额,类型 运输等模型

  3. 对于上述情况,我想允许用户输入他们的每日支出,我认为每个用户每年会产生数千个条目。关于模型规划,我不确定应该采用哪条路线,这将导致未来的最小问题。

    情况A:将导致一个包含大量列的表格,如果用户想要指出他或她的消费习惯,我不确定这是否是搜索的最佳方式(通过几次查看视图)

    情境B:会产生大量模型,但每个模型的列数都会更少。

    我应该如何在rails中定义模型和数据库?

    互联网上似乎没有太多关于如何进行规划和考虑因素(可能需要专业人员)的材料,但对于像我这样的新手,我该怎么办?

1 个答案:

答案 0 :(得分:0)

尽管我同意这个问题与RoR完全无关,但我会回答我的意见 - 因为这是一个意见

  • User has_many:
    • Months
      • month_index:integer:index YYYYMM (201706)
      • daily_hash:jsonb
        • { 01: { food_expenditures: [ { amount: 24453, name: 'big mac', random_keys: with_whatever }, { rinse and repeat } ], travel_expenditures : [ same ], ... }, 02: { ... } }

这将允许您每年有12个记录*用户,在整数列上建立索引。所以允许user.month.find_by(month_index:201704).daily_hash [' 02'] [' food_expenditures']

这会带来一些问题吗?是的,但它解决了许多其他问题。