为不同角色的用户维护单个表有多难?

本文关键字:单个表 维护 用户 角色 | 更新日期: 2023-09-27 18:10:51

如果你要为用户设计一个数据库表,那么从长期的可维护性、数据库编程、web开发等方面来说,给所有用户填充不同的角色是不是最好的选择?以这种情况为例,我被要求设计一个论坛数据库。管理器希望所有的用户都只有一个表,无论是Admin, Moderator,注册的,Guest角色。我认为这不是一个好主意(我找不到原因,只是内心的感觉)。我怎样才能说服经理,让他给行政人员安排很多桌子呢?再来一个"全民通用"是个好主意。你也可以把类似的东西应用到basecamp站点,这里是层次结构:

Company
- Admin
- Employees
- Clients
- Managers

即使他们只是角色不同,有不同的表是好的,对吗?

为不同角色的用户维护单个表有多难?

为所有用户提供一个表肯定是最容易管理和编写代码的。只需使用一个列来定义用户类型,或者使用一个权限表来跟踪给定用户具有哪些权限。拥有单独的表将是一个主要的编码麻烦,并且从概念上讲,它们中的大多数不是完全相同的吗?例如,admin只是一个拥有更多权限的版主,user vs moderator也是如此,等等。

这要看情况了,你需要去寻找答案。这都是关于实体的属性。

您可能希望为所有用户创建一个表,用于存储每个用户的所有共同属性。在这个User表中,您还可以存储一个类别属性,该属性将把User与存储类别特定信息的其他表关联起来。这些其他的"Category"表显然有一个指向User表的外键。

如果不做适当的需求收集和分析,我就不能告诉你正确的答案,这是开发好的软件和数据库所必需的。

要了解为什么要以这种方式构建数据库的更多信息,请研究第三范式和其他级别的数据规范化。

你的老板可能是对的——这种结构的最佳设计是有一个单独的'User'表,其中有一个名为'Role'的列(假设每个员工只能有一个角色)。

您的设计意味着,如果添加了新的员工类型,则必须向数据库中添加一个全新的表,而在我上面给出的示例中,您只需要向'Role'表中添加一行数据。