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