创建项目分配表的系统要求最低的方法是什么?

时间:2017-08-23 16:01:29

标签: javascript mysql backend

我有一个项目清单 对于每个项目,我都有一个项目成员列表 对于每个项目成员,我有一个分配时间列表(第33周100%,第34周80%等)

+------------------------------------------------------------+
| Project name | 3 resources |                               |
-------------------------------------------------------------+
| Resource | Role        | 33  |  34 |  35 |  36 |  37 |  38 | 
+------------------------------------------------------------+
| Person 1 | Developer   | 100 | 100 | 100 | 100 | 100 | 100 |
| Person 2 | UX designer | 100 | 100 | 100 |  60 |  60 |  60 |
| Person 3 | Project Mng | 100 | 100 | 100 | 100 | 100 | 100 |
+------------------------------------------------------------+

如果MySQL有(动态)PIVOT表,我可以在那里完成大部分工作。但没有这样的运气。

如果我开始使用联接和联合,当我有50个项目,至少有10个项目成员,并且在36周内分配时,我将获得非常大的结果集。
如果我开始构建一个查询以一次性获取所有数据,我想我将得到一个非常大而复杂的查询。我不熟悉MySQL,所以我只是从过去的经验中假设。

SELECT p.project_name, r.resource, r.role 
FROM projects p 
LEFT JOIN link_allocation la ON p.id = la.fk_project_id
LEFT JOIN resources r ON la.fk_resource_id = r.id
UNION
SELECT * from allocation a
WHERE.... and so on

我可以运行3个查询,返回项目,资源和分配。然后使用javascript循环(使用Node.js返回数据)

for (var i in Projects){ 
  for (var i in Resouces){ 
    for (var i in Allocation){ 
    }
  }
}

我关注的是,实施它的最不费力的方式是什么?

可以在MySQL上完成一些连接,然后在JS后端完成其余的工作吗?

我认为这是一个相当普通的#34;方案,所以我也假设有人开发了一个库来解决这个问题。有谁知道什么?

我的表格或多或少看起来像这样:

Projects
| ID | name | fk_project_owner_id | fk_project_mng_id |

Resources
| ID | name | role |

Allocations
| fk_project_id | fk_resource_id | week_nr | allocation |

Link_tbl_projects_resources
| fk_project_id | fk_resource_id |

0 个答案:

没有答案