问题
UPDATE: Company can have multiple Projects and Company also have Employees. An employee can only have one Company and a Project can also have only one company. A project has several tasks. Out of these tasks, an Employee will only be assigned to some of the tasks.
The employee can only be assigned tasks for project that he/she is assigned to.
Please review the following and help on how I should create the database design and the final entity model UPDATED DIAGRAM based on the two comments: If this ER diagram looks good, could you please provide guidance on how the EF 4.1 entity classes should be created, especially for EmployeeProjectTasks table. I am new to EF 4.1 Code First and would like some direction with creating these classes
If this ER diagram looks incorrect, please recommend revisions.

回答1:
The employee can only be assigned tasks for project that he/she is assigned to.
Your ER model doesn't enforce that.
That's because of the non-identifying relationship between Project
and Task
, so the propagation of ProjectID
is cut-off in that branch of the diamond-shaped dependency and EmployeeProjectTask.ProjectID
only references EmployeeProject
(but not Task
).
The model that ensures EmployeeProjectTask
is connected with EmployeeProject
and Task
from the same Project
would look like this:

Note how Task
has a composite PK {ProjectID, TaskNo}
, and how Project.ProjectID
is propagated down both "branches", and merged at the bottom of the "diamond" (resulting in the EmployeeProjectTask.ProjectID
, with FK to both EmployeeProject
and Task
).
回答2:
- currently you don't have the information which employee is assigned to which project
- the relations look like employee / task is an m:n relationship, i think you didn't do that on purpose
- is employeetasks inherited from task or is it the relationship entity?
来源:https://stackoverflow.com/questions/11656150/er-diagram-project-task-and-employee