Я хотел бы предложить вам таблицу перекрестных ссылок под названием EquipmentAssignment
, это будет выглядеть так
Create Table EquipmentAssignment(
EquipmentId int not null
AssignedId int not null
AssignedType varchar(10) not null
)
AssignedType будет либо «Автомобиль», либо «Сотрудник» (или V / Eчто угодно ...)
Я использовал этот шаблон для большого успеха, имея дело с подобной ситуацией.
Это позволяет увидеть что-то похожее на приведенное ниже, чтобы помочь вам легко справиться с двумя таблицами природы назначаемых лиц
create View Assignees
as
;with assignees as (
Select Name [AssigneeName], Id [AssigneeId], convert(varchar(10),'Employee') as [AssigneeType] from Employee
union
Select Name, Id, convert(varchar(10),'Vehiclle') as [AssigneeType] from Vehicle
)
select e.*, a.*
from EquipmentAssignment ea
join assignees a on ea.AssigneeId = a.AssigneeId and ea.AssigneeType = a.AssigneeType