Во-первых, вы можете избежать 3 таблиц для хранения информации о взаимоотношениях работодателя и сотрудника.
Вместо 3 таблиц используйте только 1 таблицу сотрудников и используйте только новый столбец, который будет хранить employeeID против другого сотрудника и eployeeID, т.е. этот конкретный employeeID в новом столбце является работодателем (который также является сотрудником) этого работник.
Пример -
Итак, у Сотрудника 1 нет работодателя, так как Employee_EmployerID равен 0. Принимая во внимание, что у Сотрудника 2 есть работодатель, который является работником 1.
В этом случае вы можете добавить employeeID в таблицу зарплат. И, выполнив самостоятельное объединение в таблице сотрудников, вы можете получить необходимую информацию.
ПРИМЕЧАНИЕ: Я предлагаю не добавлять SalaryID в таблицу Employee, потому что таблица employee является основной таблицей, поэтому в таблице сотрудников есть salaryID Это может стоить вам проблем с безопасностью позже, если вы поделитесь таблицей сотрудников с каким-либо внешним пользователем.
SELECT E1.FName [EmployeeName], E2.FName [EmployerName], S.SalaryAmount
FROM EmployeeTable E1
LEFT OUTER JOIN EmployeeTable E2 ON E1.EmployeeID = E2.Employee_EmployerID
INNER JOIN SalaryTable S ON S.EmployeeID = E1.EmployeeID
Однако, если вы хотите сохранить свою структуру такой же, как и в случае с 3 таблицами для отношений работник-работодатель, вы можете добавить SalaryID в таблицу Employer2employee ИЛИ добавить employeeID только в ваш зарплатный стол. :)
В обоих случаях только стиль соединения с таблицами изменится во время выборки.