Mysql 用户表-一个表还是两个表?

Mysql 用户表-一个表还是两个表?,mysql,database-design,relational-database,Mysql,Database Design,Relational Database,我想在数据库中存储用户详细信息。。有名字、姓氏、用户名、密码、电子邮件、手机号码、激活码、性别、生日、职业等栏目。将所有这些都存储在同一个表中好吗?还是应该在两个用户之间拆分它并配置文件?一个表应该可以。我将在密码列中存储一个散列。如果这些是用户的属性(它们是1-1),那么它们属于用户表 只有在有许多列的情况下,才会进行正常拆分;然后可以在1-1映射中创建另一个表 如果每个用户有许多配置文件行,则显然需要另一个表。我建议您阅读有关数据库规范化的内容。 它描述了不同的可能性以及每种可能性的优缺点。

我想在数据库中存储用户详细信息。。有名字、姓氏、用户名、密码、电子邮件、手机号码、激活码、性别、生日、职业等栏目。将所有这些都存储在同一个表中好吗?还是应该在两个用户之间拆分它并配置文件?

一个表应该可以。我将在
密码
列中存储一个散列。

如果这些是用户的属性(它们是1-1),那么它们属于用户表

只有在有许多列的情况下,才会进行正常拆分;然后可以在1-1映射中创建另一个表

如果每个用户有许多配置文件行,则显然需要另一个表。

我建议您阅读有关数据库规范化的内容。
它描述了不同的可能性以及每种可能性的优缺点。这实际上取决于您还想存储什么以及用户与其属性之间的关系。

一个表就足够了


当您想要向外扩展时,两个或更多的表通常是垂直部分。因此,您可以将表拆分为多个表,其中通常划分标准是使用情况,即一起使用的最常见属性位于一个表中,而其他属性位于另一个表中。

理想情况下,应使用一个表。如果列的数量变得难以管理,那么您应该将它们移动到另一个表中。在这种情况下,理想情况下,两个表应该具有一个一一关系,您可以通过将相关表中的外键设置为主键来轻松建立该关系:

User
-------------------------------
UserID INT NOT NULL PRIMARY KEY


UserProfile
-------------------------------------------------------
UserID INT NOT NULL PRIMARY KEY REFERENCES User(UserID)

取决于它是什么类型的应用程序,它可能会有所不同

对于我的用户也是员工的企业应用程序,我建议使用两个表

  • tbl_用户信息 (包含个人信息 如姓名、地址、电子邮件等)
  • tbl_用户系统信息(包含 其他信息,如(标题、, 加入公司, 左图(公司)
  • 在诸如“文档管理”、“项目信息管理”等系统中,这可能是必要的。 例如,在一家公司中,员工可能会在几年后离开并重新加入,甚至他们会有不同的职位。员工在旧职位上有一些活动和记录,而在新职位上会有更多。因此,应该在系统中记录他用哪个职位(权限)做了一些事情