扶手:用于验证的一种模式,档案信息或者2个独立的模型(Rails: One model for Au

2019-09-21 09:52发布

在很多教程(特别是身份验证),扬声器说把用户认证和配置文件信息在被叫用户相同的表(模型)。

我的问题很简单:它是安全的把一切都放在一个表? (奖金:这是最好的做法是什么?)

我宁愿建议独立的身份验证信息(电子邮件,密码,盐,...)和个人资料信息(姓,名,出生当天,位置,性别,...)两种型号:用户(认证)和个人资料,并通过HAS_ONE / belongs_to的关联链接模型。

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

谢谢。

Answer 1:

如果你想追随数据库normalisations你应该分开的表。 但是,有时它是不是最好的选择...例如,如果你的表users刚刚emailpassword (用于认证)和name 。 我不会创建一个profile表只是保存name ,对不对?

因此,这将取决于您的需求,您的设计决策....

我发现这个有趣的讯息吧,在那里@D罗迪斯解释这三种不同的方法的优点和缺点: 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

我希望它可以帮助...



Answer 2:

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

有多少行动是有其用户的操作和配置文件一起? 不是很多,有很多在他们需要什么都不知道(或不外乎ID以上)约对方两个构建。



文章来源: Rails: One model for Authentication and Profile information or 2 separate models