Rails:一种用于身份验证和配置文件信息的模型或两个单独的模型

时间:2012-08-20 14:50:17

标签: ruby-on-rails authentication model profile

在许多教程中(特别是对于身份验证),发言者说将用户身份验证和配置文件信息放在名为User的同一个表(模型)中。

我的问题很简单:将所有内容放在一个表中是否安全? (奖励:这是最佳做法吗?)

我建议将身份验证信息(电子邮件,密码,盐,...)和个人资料信息(名字,姓氏,出生日期,地点,性别......)分为两种模式:用户(用于身份验证)和配置文件,以及通过has_one / belongs_to关联链接模型。

我错了吗?你有什么建议我?

感谢。

2 个答案:

答案 0 :(得分:5)

如果您想关注database normalisations,则应将表格分开。但是,有时候这不是最好的选择...例如,如果您的表users只有emailpassword(用于身份验证)和name。我不会创建一个profile表来存储name,对吗?

因此,这取决于您的要求,以作出您的设计决定....

我找到了this interesting post,其中@D Roddis解释了三种不同方法的优点和缺点:Storing User Profile in Users TableStoring User Profile in User_Profile Table 1-1 relationship to usersStoring User Profile as properties and values in tables

我希望它有所帮助...

答案 1 :(得分:1)

我自己把它们放在单独的模型中。

对用户和个人资料一起操作的操作有多少?并不是很多,在这两种结构中都有很多,他们需要对彼此一无所知(或者只是id)。