如果标题令人困惑,请抱歉。
假设我有一个名为Employee的模型。 Employee有一个名为Departments的列。这允许他们查看该部门的日历。但是一些员工应该能够查看多个部门的日历,而且每个员工都有所不同。
因为有许多不同的部门,我不希望每个部门的Employee表都填充了大量的新列。
我看到了关于链接(不确定这是否是正确的词)的两个表格。所以我创建了第二个名为AdditionalDepartments的模型/表,其中包含AdditionalDepartmentsId,EmployeeId和Department。
Say Joe是A部门的一部分,但也可以查看B和C.这就是员工的样子。
EmployeeId | name | Department
-------------------------------
1 | Joe | IT
和AdditionalDepartments看起来像......
AdditionalDepartmentsId | EmployeeId | Department
--------------------------------------------------
1 | 1 | HR
2 | 1 | Sales
我如何组合这些?或者有更好的方法来存储其他部门信息而不是两个表吗?
我问,因为在我看来,当他们创建或编辑员工时,他们使用员工数据库,但我希望能够在这些视图上设置其他部门。问题是你每个视图只能使用一个模型,所以我遇到了困难。
注意:我不能从Employee中删除Department,因为它的用途远远超过AdditionalDepartments的用途。
答案 0 :(得分:1)
您希望Employee模型的IEnumberable<Department>
包含员工所属的所有部门。
在某种程度上不相关的说明中,如果您能够更改表模式,则可以删除第一个表中的“部门”列,并使第二个表格成为与员工关联的部门列表。 employeeID列(它们将具有外键关系)。
很抱歉,如果我误解了您的问题,但除非您将一个数据库作为单一模型,否则这应该适合您。
答案 1 :(得分:1)
将您的第一个表格列更改为官方部门。在第二个表格中,删除“附加”表格。并将其留作部门。添加&#39; IT&#39;在这张桌子上为Joe&#39;同样。然后使用下面的语句将SQL输出到模型中的List<Departments>
并根据需要使用。
select A.Departments as [Departments]
from Employees E
join Departments D on E.EmployeeId = D.EmployeeId
where E.EmployeeId = <empId>