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