在许多教程(尤其是身份验证)中,演讲者说将用户身份验证和配置文件信息放在名为 User 的同一个表(模型)中。
我的问题很简单:把所有东西都放在一张桌子上安全吗?(奖励:这是最佳做法吗?)
我宁愿建议将身份验证信息(电子邮件、密码、盐......)和个人资料信息(名字、姓氏、出生日期、位置、性别......)分成两个模型:用户(用于身份验证)和配置文件,并通过 has_one/belongs_to 关联链接模型。
我错了吗?你有什么建议?
谢谢。
在许多教程(尤其是身份验证)中,演讲者说将用户身份验证和配置文件信息放在名为 User 的同一个表(模型)中。
我的问题很简单:把所有东西都放在一张桌子上安全吗?(奖励:这是最佳做法吗?)
我宁愿建议将身份验证信息(电子邮件、密码、盐......)和个人资料信息(名字、姓氏、出生日期、位置、性别......)分成两个模型:用户(用于身份验证)和配置文件,并通过 has_one/belongs_to 关联链接模型。
我错了吗?你有什么建议?
谢谢。
如果您想遵循数据库规范化,您应该将表分开。但是,有时它不是最佳选择...例如,如果您的表users
只有email
, password
(用于身份验证)和name
. 我不会创建一个profile
表来存储name
,对吗?
因此,这将取决于您的要求来做出设计决定......
我发现了这篇有趣的帖子,@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
.
我希望它有帮助...
我自己会把它们放在单独的模型中。
有多少动作同时作用于用户和个人资料?不多,在这两种构造中,他们需要对彼此一无所知(或仅是身份)的很多地方。