员工、部门和角色层次结构的数据库设计

Database design for employee, department and role hierarchy

假设我有员工和部门以及员工角色,其中一名员工可以属于具有不同角色的不同部门。

例如,Emp 1 属于具有角色经理的部门 1。其中同一名员工可以属于部门 2,角色为服务人员。

每个员工也有一个子层次结构,如 Emp 2,Emp 3 属于部门 1,角色助理,他们的父级是 Emp 1。

在这种情况下,设计此概念的最佳解决方案是什么。请分享您的意见。

考虑实体和属性:

员工: ID, 名字

部门: 部门编号, dept_name

角色: role_id, role_name

我将尝试按照您概述的方式说明业务领域,然后将其转化为架构建议。

系统有0个或多个员工

系统有0个或多个部门

系统有 0 个或多个 角色 <<编辑:您的评论说“parent”角色是 department-specific>> 员工属于1个或多个部门,并且在该部门内只有一个角色和一个parent (a parent 是另一个员工)

Employee
------------
Employee_id (pk)
Name

Roles
------
Role_id (pk)
Name

Departments
-----------
Department_id (pk)
Name

Employee_deparment_role
-------------------------
employee_id (pk, fk)
department_id (pk, fk)
role_id (pk, fk)
Parent_id (pk, fk to employees) 

此模型仅捕获一种状态 - 它不允许人们更改部门或角色,或“parent”,但您没有将其作为要求提及。