gpt4 book ai didi

sql - MySQL 问题 - 如何处理多种类型的用户 - 一个表或多个?

转载 作者:IT老高 更新时间:2023-10-29 00:21:32 26 4
gpt4 key购买 nike

我正在为拥有多种“类型”用户的组织设计数据库。起初,我只创建了一个用户表。然而,尽管所有用户共享一些公共(public)信息(名字、姓氏、用户名、密码等),但每种用户类型都需要一个或两个附加字段,这些字段并不适用于所有用户。虽然我可以创建这些附加字段并将它们设置为 NULL,但我不希望这样做,因为这些字段是外键并且它给我带来了问题。

通常如何处理这种情况?

谢谢!

最佳答案

您不创建包含大量 NULLS 的大表的直觉是正确的。从存储/检索/维护的角度来看,以及从数据验证的角度来看(稍后会详细介绍),这是个坏主意。

两种最常见的方法:

1) 有一个包含所有常用字段的用户表,包括“userType”字段。然后为每个包含额外字段的用户类型创建一个单独的表。所有用户在用户表和一个或多个特定用户类型表中都有一行。这是存储和快速登录最规范和最有效的。这还允许您使用约束和外键来确保每种用户类型的所有必需信息都可用。

2) 有一个包含所有公共(public)字段的用户表。有另一个名为 UserAttributes 的表,其中包含用户 ID、键和值的字段。特定用户的任何额外元数据都可以存储在此处。这样做的好处是不需要任何数据库管理来添加新的用户类型或要为每个用户类型存储的元数据。但是,它不允许您在数据库级别进行任何数据验证。

关于sql - MySQL 问题 - 如何处理多种类型的用户 - 一个表或多个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1054068/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com