在许多教程中(特别是对于身份验证),发言者说将用户身份验证和配置文件信息放在名为User的同一个表(模型)中。
我的问题很简单:将所有内容放在一个表中是否安全? (奖励:这是最佳做法吗?)
我建议将身份验证信息(电子邮件,密码,盐,...)和个人资料信息(名字,姓氏,出生日期,地点,性别......)分为两种模式:用户(用于身份验证)和配置文件,以及通过has_one / belongs_to关联链接模型。
我错了吗?你有什么建议我?
感谢。
答案 0 :(得分:5)
如果您想关注database normalisations,则应将表格分开。但是,有时候这不是最好的选择...例如,如果您的表users
只有email
,password
(用于身份验证)和name
。我不会创建一个profile
表来存储name
,对吗?
因此,这取决于您的要求,以作出您的设计决定....
我找到了this interesting post,其中@D Roddis解释了三种不同方法的优点和缺点:Storing User Profile in Users Table
,Storing User Profile in User_Profile Table 1-1 relationship to users
和Storing User Profile as properties and values in tables
。
我希望它有所帮助...
答案 1 :(得分:1)
我自己把它们放在单独的模型中。
对用户和个人资料一起操作的操作有多少?并不是很多,在这两种结构中都有很多,他们需要对彼此一无所知(或者只是id)。