Rails用户has_one:个人资料与显示页面

时间:2010-10-16 02:14:41

标签: ruby-on-rails ruby performance database-design

我有最佳做法/效率/表现问题。

如果我想为我的系统中的每个用户创建一个个人资料页面,并且我已经有了一个用户模型。是否更好地在用户模型中包含所有用户信息并将其拉到用户的显示页面上

所以users / show将访问用户模型并获取所有相关数据,例如关于我,兴趣等。

OR

我应该在用户模型中创建配置文件模型并执行has_one:profile,并将相关的配置文件数据保存在那里吗?

这不是一个如何质疑,而是,所谓的“最佳实践”以及为什么使用一种方法而不是另一种方法?谢谢!

1 个答案:

答案 0 :(得分:3)

如果是我的应用程序,我会问这样一个问题:“在没有配置文件的情况下,用户表的查询频率是多少。”如果答案经常是,那么肯定,正常化。但是要知道为配置文件创建另一个表会增加连接的开销和额外的外键(甚至可能是索引......)。

我已经看到它完成了两种方式,对我而言,将用户的信息保存在用户身上更为自然。如果信息真的很详细,如多个联系地址等,你可能会想到打破一些东西。