我想知道如何最好地构建一个包含员工、部门和经理数据的数据库。
我遇到的问题是它本质上需要无限递归,因为彼此之下可能有多个部门。
所以,本质上就像一个文件夹结构。但是我怎样才能最好地将这些数据保存到一个或多个 mySQL 表中呢?
任何帮助将不胜感激。
您可以创建 2 个单独的表department和employees.
每个员工都会有一个department_id和一个manager_id。
假设组织中最高层的人是 CEO。他将有一个部门,他的经理 ID 将为零。
然后是 CTO、CFO 等。他们也将有一个部门和一个经理 ID,即 CEO 的 ID。
同样,您可以通过在同一张表中添加外键引用来构建整个系统employees。
同样,要维护部门的层次结构,您可以创建一个列parent_department作为外键引用。
在“部门”表中,您需要一个额外的列,例如“父 ID”,这将是层次结构中位于其上方的部门的 ID(如果有)。
允许一个表具有指向同一个表中另一列的外键。