在MYSQL中创建组织数据库

在MYSQL中创建组织数据库,mysql,sql,database,Mysql,Sql,Database,我想知道如何最好地构建一个数据库来保存员工、部门和经理的数据 我的问题是,它本质上需要无限递归,因为可能有多个部门在彼此下面 所以,本质上就像文件夹结构一样。但是如何才能最好地将这些数据保存到一个或多个mySQL表中呢 非常感谢您的帮助。在Departments表中,您需要一个额外的列,如“parent ID”,它是层次结构中位于它之上的部门的ID(如果有) 一个表允许有一个外键指向同一表中的另一列。您可以创建两个单独的表部门和员工 每个员工都有一个部门id和一个经理id 假设组织中最高层的人是

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

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

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


非常感谢您的帮助。

在Departments表中,您需要一个额外的列,如“parent ID”,它是层次结构中位于它之上的部门的ID(如果有)


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

您可以创建两个单独的表
部门
员工

每个员工都有一个
部门id
和一个
经理id

假设组织中最高层的人是首席执行官。他将有一个部门,他的经理id为零

然后是首席技术官、首席财务官等。他们也将有一个部门和一个经理id,即首席执行官的id

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


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

查看Merise方法a
外键
引用自己的表是您要查找的内容查看Bill Karwins关于关系数据库中的层次数据的精彩幻灯片:@Cid这就是我想要的目前有,但我不知道如何使用该设置获得完整的结构。引用父元素的外键。如果要获取id为
42
的条目的所有子元素,可以使用这种where子句
where parent\u id=42