Позиция / Название очень контекстно
в отдел. Можно быть
Региональный менеджер в одном отделе и
может дополнительно принять консультанта
должность в другом отделе.
Тогда отдел и Сотрудник многие-ко-многим. Сотрудник на должность также много ко многим. Если вам нужна гибкость, например, добавление нового заголовка для отдела, необходимы соединительные таблицы. Вы не можете избежать этого.
Вы можете обратиться к следующей структуре таблицы для справки:
Employee
-----------------------
EmployeeID (PK)
EmployeeName
Active
Department
-------------------------
DepartmentID (PK)
DepartmenName
Location
Position
----------------------------
PositionID (PK)
PositionDescription (eg.Clerk, Accountant etc)
EmployeePosition
----------------------------
EmployeeID (FK to Employee.EmployeeID )
DepartmentID (FK to Department.DepartmentID)
PositionID (FK to Position.PositionID )
Если позиция / название зафиксировано на
Сотрудник вместо Департамента, т.е.
сотрудник, который является клерком и может быть в
эта должность в один или несколько отделов,
как мы можем это сделать?
Вы имеете в виду, что в крайнем случае многие сотрудники могут иметь свои особые звания? а они принадлежат многим ведомствам? Если да, предположим, что идентификатор сотрудника 123 имеет специальное название «Особый» и принадлежит отделу информационных технологий, учета и продаж. Сначала вы создаете этот заголовок (то есть «Особый») в таблице Position
и получаете Position.PositionID
.
Затем вы вставляете 3 записи для Employee.EmployeeID 123 в таблицу EmployeePosition
, используя этот Position.PositionID
и идентификатор отдела ИТ, бухгалтерии, отделов продаж.