【发布时间】:2012-07-21 00:25:14
【问题描述】:
我需要一些关于项目管理系统数据库设计的指导。我的问题主要是关于我应该如何围绕各种角色设计列或表的功能。
系统将在一个用户表中有多个用户,并在角色表中有以下角色 (公司管理员、项目经理、主管、候补主管、员工)
涉及的各种实体是用户、角色、UserRoleMapping、公司、项目
- 一家公司有很多项目,并且有一个或多个公司管理员
- 每个项目都有一个项目经理
- 每个项目都有几名员工分配给它
- 每个员工都有一个主管
我正在寻找可以很好地转换为实体框架模型的良好数据库设计。
这是我想到的方法,如果有任何反馈,我将不胜感激: 使用将提供用户、角色、UserRoleMapping 功能的默认 ASP.NET 成员资格。
然后,使用 Membership 中的基本用户表并创建特定于角色的表来存储各种用户:员工、公司管理员、主管
更新二:请看下面的新图片。考虑使用每个层次结构的表将各种经理(公司的公司管理员、项目的项目经理、员工的主管)存储在同一个表中。 您如何看待数据库设计,请建议这将如何用于实体模型?
另外,另外,您认为我连接项目、任务和员工的方式正确吗?
谢谢。
【问题讨论】:
-
您将如何将
EmployeeTask限制为与Task来自同一公司的Employees?与USerProjects相同? -
嗯,不确定。我可以将 CompanyID 也添加到这些表中,还是依靠模型或应用程序逻辑来不允许这样做?请指教。
-
达米尔,请参阅我在上述问题中的更新。你怎么看这个?
-
从您的模型中,您遵循什么逻辑来拥有两个独立的实体“用户”和“员工”?我怀疑“用户”不需要是公司的“员工”,例如,他们可以是内部管理员或审计员,而“用户”实体是代表特定实体的其他类型实体的父实体系统中的参与者类型。如果这是正确的,那么对于这种特殊情况,“角色”应该一般适用于“用户”,还是只适用于“员工”?你的意思是管理“员工”的角色还是“用户”的整体?
标签: entity-framework database-design entity-framework-4