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

时间:2011-10-07 09:26:00

标签: c# sql-server database-design relational-database

如果您要为用户设计数据库表,那么填充具有不同角色的所有用户将是长期可维护性,数据库编程,Web开发的最佳选择。以这种情况为例,我被要求设计一个论坛数据库&经理只想为所有用户提供一个表AdminModerator,已注册,Guest个角色。我认为这不是一个好主意(我无法找到理由,只有内心感受)。如何说服管理员有多个表格,如admin和&另一个人是个好主意。您也可以将类似的东西应用于这里是层次结构的basecamp网站:

Company
- Admin
- Employees
- Clients
- Managers

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

3 个答案:

答案 0 :(得分:2)

所有用户的单个表肯定是最容易管理和编码的。只需要一个定义用户类型的列,或一个跟踪给定用户具有哪些权限的权限表。拥有单独的表将是一个主要的编码麻烦,从概念上讲,它们中的大多数并不完全相同?例如。 admin只是一个拥有更多权限的主持人,同样适用于用户与主持人等等。

答案 1 :(得分:2)

这完全取决于你需要离开并找出答案。它完全是关于实体的属性。

您可能希望所有用户都有一个表,您将存储每个用户共有的所有属性。在此User表中,您还可以存储一个类别属性,该属性将User与存储类别特定信息的其他表相关联。这些其他“类别”表显然会有User表的foriegn键。

如果不进行开发优质软件和数据库所需的适当需求收集和分析,我无法告诉您正确答案。

有关构建数据库的原因的更多信息,请研究Third Normal Form和其他级别的数据规范化。

答案 2 :(得分:1)

你的老板可能是对的 - 像这样的结构的最佳设计是拥有一个“用户”表,其中有一个名为“角色”的列(假设每个员工只能有一个角色)。

您的设计意味着如果添加了新的员工类型,则必须将全新的表添加到数据库中,而在上面给出的示例中,您只需要添加一行数据到你的“角色”表。