我应该如何在rails应用程序中更好地组织相关数据表?

时间:2012-12-24 19:38:49

标签: ruby-on-rails

我有一个使用Devise生成的用户模型。

现在我希望每个用户都有其他列

- balance
- paperclip logo
- website
- address
- phone
etc

组织此类数据的最佳方式是什么?

我应该制作单独的表格(如电话表,地址表,用户标识表等)并建立一对一关系吗?

我听说把所有东西放在一张桌子上都很糟糕。

很高兴听到一些意见。

1 个答案:

答案 0 :(得分:1)

将所有内容放在一个表格中

  • 好处:无需连接即可获取用户模型,从而节省查询时间
  • 缺点:用户模型将包含大量数据,因此如果您持有1000个用户的数组,他们将消耗内存

分隔属性

  • 好处:用户模型将消耗很少的内存(只有基本内容,如电子邮件,名称,......)
  • 缺点:有很多联接来获取有关用户的信息

我认为您的选择很大程度上取决于您的应用程序的功能,因此如果您始终需要有关用户的所有信息,那么将所有内容放在一个表中,您可以将数据分开。 无论如何,您可以同时执行这两项操作,以便拥有user模型和另一个名为user_data的模型,该模型将保留所有额外信息,例如phoneaddress,等等......这样你就可以从两种方法中获益。