具有各种用户角色的数据库设计和EF模型

时间:2012-07-22 14:35:54

标签: entity-framework database-design entity-framework-4

我需要一些关于项目管理系统的数据库设计的指导。我的问题主要是围绕各种角色设计列或表的功能。

系统将在Users表中具有多个用户,并在Roles表中具有以下角色 (公司行政,项目经理,主管,副主管,员工)

涉及的各种实体包括用户,角色,UserRoleMapping,公司,项目

  • 公司有很多项目,还有一个或多个公司管理员
  • 每个项目都有一个项目经理
  • 每个项目都有几名员工分配给它
  • 每位员工都有一名主管

我正在寻找一个很好的数据库设计,可以很好地转换为实体框架模型。

这是我想到的方法,并希望得到任何反馈: 使用默认的ASP.NET成员资格,它将提供Users,Roles,UserRoleMapping功能。

然后,使用Membership中的基本Users表并创建Role特定表来存储各种用户:Employees,CompanyAdmins,Supervisors

更新二:请参阅下面的新图片。考虑使用每个层次表来存储各个管理器(公司的公司管理员,项目的项目经理,员工的主管)在同一个表中。 您如何看待这个数据库设计并请建议如何对实体模型起作用?

enter image description here

此外,另一方面 - 您认为我连接项目,任务和员工的方式是否正确?

感谢。

1 个答案:

答案 0 :(得分:2)

员工表有多大?作为管理员,主管或经理,所有这些都是员工(尽管他们可能有也可能没有主管)。员工可以分配到多个项目吗?员工可以分配多个项目吗?在我的情况下,雇员可以一次只分配给一个项目(或者在某些雇员的情况下,没有)。这允许我修改一个基本的员工对象,如下所示: 的EmpID [员工信息] SupervisorID(可以为null并且是employee_id) AlternateSupervisorID(可以为null并且是employee_id)| Project_ID(可以为null)并且是FK

只有其他对象是具有project_id PK的项目。