役職/役職は、部署の文脈に大きく依存します。ある部門の地域マネージャーになることができ、さらに別の部門でコンサルタントの地位に就くことができます。
次に、部門と従業員は多対多です。位置への従業員も多対多です。部門の新しいタイトルを追加するなど、柔軟性が必要な場合は、ジャンクション テーブルが必要です。避けることはできません。
参照用に、次のテーブル構造を参照できます。
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 )
役職/役職が部門ではなく従業員に固定されている場合、つまり、事務員であり、1 つまたは複数の部門でその地位に就くことができる従業員の場合、どうすればよいでしょうか?
極端な場合、多くの従業員が独自の特別な肩書を持つことができるということですか? 彼らは多くの部門に属していますか?はいの場合、従業員 ID 123 が「The Special One」という特別な肩書を持っており、IT、アカウント、および営業部門に属しているとします。最初にこのタイトル (つまり、"The Special One") をPosition
テーブルに作成し、Position.PositionID
.
次に、これと IT 、 Account 、 Sales 部門の Department ID をEmployeePosition
使用して、 Employee.EmployeeID 123 の 3 つのレコードをテーブルに挿入します。Position.PositionID