请就以下问题提出自己的看法。
我们有一个应用程序,包括管理员面板,Web服务和用户前端。
因此,我们正在设计一个用于用户管理的数据库。
前端用户将登录(使用用户名和密码),并且在成功登录后,我们将在会话中具有以下值 - 显示名称 - 电子邮件
Web服务用户将使用(Username + api_key或auth_hash)登录,不会创建任何会话
前端/ Web服务用户可以添加以下详细信息: 名字 姓 电话 个人资料Pic ...更多
这个
的完美数据库设计是什么1)一个表用于存储所有信息,如:
id username password auth_key / hash display_name email first_name last_name phone profile_pic etc ..
问题: - 对于登录功能,我们在表中有额外的列。 - 为了再次获取详细信息,我们在表格中添加了额外的列。
2)两张桌子
USER_LOGIN
id username password auth_key display_name email
user_details
first_name last_name phone profile_pic
问题:
登录功能和显示详细信息都需要一些像电子邮件和名称这样的列。 如果我们将它们保存在一个表中,我们需要在获取时添加JOIN,这是我们应该避免的。 如果我们在两个表中保留电子邮件,那么这是一个安全问题。
请建议最好的方法。或者其他一些方法来实现这一点。
- 谢谢