0

我想知道如何最好地构建一个包含员工、部门和经理数据的数据库。

我遇到的问题是它本质上需要无限递归,因为彼此之下可能有多个部门。

所以,本质上就像一个文件夹结构。但是我怎样才能最好地将这些数据保存到一个或多个 mySQL 表中呢?

任何帮助将不胜感激。

4

2 回答 2

1

您可以创建 2 个单独的表departmentemployees.

每个员工都会有一个department_id和一个manager_id

假设组织中最高层的人是 CEO。他将有一个部门,他的经理 ID 将为零。

然后是 CTO、CFO 等。他们也将有一个部门和一个经理 ID,即 CEO 的 ID。

同样,您可以通过在同一张表中添加外键引用来构建整个系统employees

同样,要维护部门的层次结构,您可以创建一个列parent_department作为外键引用。

于 2018-12-13T09:32:25.620 回答
0

在“部门”表中,您需要一个额外的列,例如“父 ID”,这将是层次结构中位于其上方的部门的 ID(如果有)。

允许一个表具有指向同一个表中另一列的外键。

于 2018-12-13T09:26:38.910 回答