2013-07-22 60 views
3

使用PHP & Mysql-在mysql中处理大型递归查询的最佳方式是什么?

我有一个120,000名雇员的名单。每个人都有一个主管领域的主管员工编号。

我正在寻找建立一些东西,以格式显示树中的员工。鉴于如果您点击任何人,您可以选择下载其下的所有员工(及其信息)。

所以有两个问题 - 我应该写我的脚本来处理查询(我有但是很慢)或者应该创建某种帮助器表/视图?我正在寻找这方面的最佳做法。

另外我相信这已经做了一百万次。有没有一个能处理组织层次的好班级?

+0

你目前使用的是什么查询? –

+4

http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/ – Barmar

+0

@Barmar,这是一篇很棒的文章。谢谢你的链接。 – blankip

回答

1

执行此操作的标准方法是使用一张表来存储所有员工,主键字段为employee_id,而supervisor_id为“自联接”字段 - 表示此值字段指向该员工主管的员工ID。就显示员工树而言 - 对于相对较小的树,可以在创建页面时将整个树结构发送到客户端的浏览器,并且可以在从存储的数据点击节点时显示树节点。但是,对于较大的树,最好根据需要获取数据,即单击节点时。如果您有120,000名员工,那么您可能需要使用后面的方法。

+0

目前正在设置。我可以轻松地获得直属下属,但是如果我有一个VP,则可能会有6个级别,我至少需要打印所有内容的选项。 – blankip

相关问题