我需要一些关于项目管理系统的数据库设计的指导.我的问题主要是围绕各种角色设计列或表的功能.
系统将在Users表中具有多个用户,并在Roles表中具有以下角色
(公司管理员,项目经理,主管,副主管,员工)
涉及的各种实体是用户,角色,UserRoleMapping,公司,项目
>一家公司有很多项目,还有一个或多个公司管理员
>每个项目都有一个项目经理
>每个项目都有几个员工分配给它
>每位员工都有一名主管
我正在寻找一个很好的数据库设计,可以很好地转换为实体框架模型.
这是我想到的方法,并希望得到任何反馈:
使用提供Users,Roles,UserRoleMapping功能的默认ASP.NET成员资格.
然后,使用Membership中的基本Users表并创建Role特定表来存储各种用户:Employees,CompanyAdmins,Supervisors
更新二:请参阅下面的新图片.考虑使用每个层次表来存储各个管理器(公司的公司管理员,项目的项目经理,员工的主管)在同一个表中.
您如何将此视为数据库设计,请说明这对实体模型有何影响?
此外,另一方面 – 您认为我连接项目,任务和员工的方式是否正确?
谢谢.
最佳答案 员工表有多大?作为管理员,主管或经理,所有这些都是员工(尽管他们可能有也可能没有主管).员工可以分配到多个项目吗?员工可以分配多个项目吗?在我的情况下,雇员可以一次只分配给一个项目(或者在某些雇员的情况下,没有).这允许我修改一个基本的员工对象,如下所示:
的EmpID
[员工信息]
SupervisorID(可以为null并且是employee_id)
AlternateSupervisorID(可以为null并且是employee_id)| Project_ID(可以为null)并且是FK
只有其他对象是具有project_id PK的项目.