我应该如何在 2 表解决方案中存储用户名?

问题描述 投票:0回答:1

背景:

目前,我计划使用2个表来存储用户信息。一张表用于存储身份验证信息(用户名、密码和电子邮件)[auth_table]。另一个用于存储普通用户数据(名称、个人资料图像、设置等)[profile_able]。

但是,当我必须获取用户名来加载用户的个人资料页面时,我遇到了困难。加载个人资料页面时,我需要加载个人资料信息,然后在返回数据之前查看身份验证表以获取用户名。

搜索也类似。当用户搜索其他用户的用户名时,我必须搜索 auth 表,然后找到链接的个人资料 ID 以获取个人资料信息。

问题:

我应该在个人资料信息表中放置用户名的副本吗? (违反了单一事实来源)或者我应该将所有内容合并到一张表中?

我能想到的另一个解决方案是将用户名作为单独的实体。但这似乎增加了复杂性,而且老实说感觉设计得太过分了。

sql mysql database go
1个回答
0
投票

我建议使用 auth 表中的主键作为 user_id,它可以根据用户名的唯一性生成,并使用该用户 id 作为配置文件表中的外键。这将使您的数据标准化并提高数据检索时的效率

© www.soinside.com 2019 - 2024. All rights reserved.