2011-10-07 34 views
0

如果您为用户设计数据库表格,将所有具有不同角色的用户填充为长期可维护性,数据库编程和Web开发的最佳选择。以这种情况为例,我被要求为论坛设计一个数据库&经理希望所有用户只有一张表Admin,Moderator,,Guest注册,Guest角色。我认为这不是一个好主意(我无法找到理由,只是内心的感觉)。我怎么能说服管理员有很多表像管理&另一个人都是一个好主意。您也可以采用类似的事情大本营网站,这里是层次结构:如何为不同角色的用户维护单一表格

Company 
- Admin 
- Employees 
- Clients 
- Managers 

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

+1

如果你没有任何推理,你是否至少要求你的上司的推理,而不是盲目地试图说服他们呢? –

+0

@ Mr.Disappointment接受了答案。我应该也要求上级 – Deeptechtons

回答

2

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

+0

接受和投票了(SO告诉我等待7分钟) – Deeptechtons

1

你的老板可能是对的 - 像这样的结构的最佳设计应该是有一个单独的'用户'表,它有一列称为'角色'(假设每个员工只能有一个角色)。

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

2

这一切都取决于,你需要走开并找出答案。它关于实体的属性。

您可能希望为所有用户提供一个表格,您将在其中存储每个用户共有的所有属性。在User表中,您还可以存储将User s与存储类别特定信息的其他表相关联的类别属性。这些其他'类别'表格明显具有User表格的foriegn键。

如果没有进行适当的需求收集和分析以开发良好的软件和数据库,我无法告诉您正确的答案。

有关为什么要用这种方式构建数据库的更多信息,请参阅研究Third Normal Form和其他级别的数据规范化。

+0

+1类别/角色表。这是抽象的方式。如果OP尚不清楚,则可以通过这种方式为每个用户分配多个类别/角色。 –

+0

+1为正常化步骤做 – Deeptechtons

相关问题