4

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

系统将在用户表中有多个用户,在角色表中有以下角色 (公司管理员、项目经理、主管、候补主管、员工)

涉及的各种实体是用户、角色、用户角色映射、公司、项目

  • 一家公司有许多项目,并且有一个或多个公司管理员
  • 每个项目都有一个项目经理
  • 每个项目都有几个员工分配给它
  • 每个员工都有一个主管

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

这是我想到的方法,希望得到任何反馈:使用提供用户、角色、用户角色映射功能的默认 ASP.NET 成员资格。

然后,使用 Membership 中的基本用户表并创建特定于角色的表来存储各种用户:员工、公司管理员、主管

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

在此处输入图像描述

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

谢谢。

4

1 回答 1

3

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

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

于 2012-07-22T16:01:13.347 回答