Mysql 我是否应该创建两个表:第一个是用户名和密码,另一个是dob、name等用户信息?

Mysql 我是否应该创建两个表:第一个是用户名和密码,另一个是dob、name等用户信息?,mysql,query-optimization,Mysql,Query Optimization,如果这是一个不好的问题,我真的很抱歉,但我对为我的在线网站(PHP+MySQL)设计MySQL数据库非常陌生,因为我的网站需要管理用户帐户。在一个旧项目中,我看到有人使用两个不同的表:第一个表用于用户帐户,如用户名、用户id和密码,另一个表用于用户的相关数据,如dob、名称等 我不知道这在优化方面是否有什么特别的优势,或者是否有助于扩展网站。我更喜欢用一张桌子来处理这两个问题。这也是可取的吗?在大多数情况下,您应该使用单独的表来存储用户属性。我通常使用一个用户表和一个UserProfile表来实

如果这是一个不好的问题,我真的很抱歉,但我对为我的在线网站(PHP+MySQL)设计MySQL数据库非常陌生,因为我的网站需要管理用户帐户。在一个旧项目中,我看到有人使用两个不同的表:第一个表用于用户帐户,如用户名、用户id和密码,另一个表用于用户的相关数据,如dob、名称等


我不知道这在优化方面是否有什么特别的优势,或者是否有助于扩展网站。我更喜欢用一张桌子来处理这两个问题。这也是可取的吗?

在大多数情况下,您应该使用单独的表来存储用户属性。我通常使用一个用户表和一个UserProfile表来实现这一点。用户表通常包含与登录网站相关的用户名、密码、上次登录时间等。个人资料通常包括姓名、电子邮件地址、出生日期等内容

我不能谈优化方面的事情,但我可以谈组织方面的事情。从长远来看,这种布局使事情更干净。如果你在筛选记录,那么在一方有所有“登录相关”的内容,在另一方有“档案相关”的内容就容易多了

把所有的东西都放在一张桌子上也很难闻。用户的dob与其登录凭据的关系如何?他们不是,真的


只需将UserProfile表中的外键字段放回User表,即可快速查找。

在大多数情况下,您应该使用单独的表来存储用户属性。我通常使用一个用户表和一个UserProfile表来实现这一点。用户表通常包含与登录网站相关的用户名、密码、上次登录时间等。个人资料通常包括姓名、电子邮件地址、出生日期等内容

我不能谈优化方面的事情,但我可以谈组织方面的事情。从长远来看,这种布局使事情更干净。如果你在筛选记录,那么在一方有所有“登录相关”的内容,在另一方有“档案相关”的内容就容易多了

把所有的东西都放在一张桌子上也很难闻。用户的dob与其登录凭据的关系如何?他们不是,真的


只需将UserProfile表中的外键字段放回User表,即可快速查找。

一个表中的用户名、密码、电子邮件、出生日期、姓名、地址等信息完全正确

虽然我同意Capitain Skyhawh将用户登录/用户配置文件分开的逻辑,但我个人会将其放在同一个表中,因为我发现在数据库中有
1..1
关系有点无用


如果配置文件是可选的,我肯定会使用2个表。

一个表中的用户名、密码、电子邮件、出生日期、姓名、地址等完全正确

虽然我同意Capitain Skyhawh将用户登录/用户配置文件分开的逻辑,但我个人会将其放在同一个表中,因为我发现在数据库中有
1..1
关系有点无用


如果profile是optionnal,我肯定会使用2表。

当我必须创建诸如用户名可能属于用户或业务页面的链接时,我遇到了同样的问题。单个表无法解决此问题,因为用户和业务页面没有相同的属性


我必须为用户名创建一个表,该表的外键为user\u id和page\u id以及type(无论是user还是page)。

当我必须创建诸如用户名可能属于用户或业务页面的链接时,我遇到了同样的问题。单个表无法解决此问题,因为用户和业务页面没有相同的属性


我必须为用户名创建一个表,该表的外键为user\u id和page\u id以及type(无论是user还是page)。

对于所有面向用户的数据(pw、dob、id、name),使用一个表是有意义的,因为它都是相关数据。对于所有面向用户的数据(pw、dob、id、name),使用一个表是有意义的由于这些都是相关数据,实际的区别在于,一些真实的人通常共享一个登录身份。它们是两个不同的东西。实际的区别是一些真实的人通常共享一个登录身份。它们是两种不同的东西。