我正在使用ASP.net MVC6和Azure SQL-db制作网络解决方案。
我的目标是建立一个每周订购工作团队的订单系统,并且必须能够在今天提前6周显示工作订单。每个工单都连接到一个项目。经理应该能够选择一个项目,然后开始订购不同类型的工人(disiplin),为他们提供6个星期的每个人员的人力需求。 disiplin可以是木匠,画家,瓦工等。
每个项目都可以分配任意数量的disiplin,因此无法将其硬编码到表结构中。您可以在2016年的第2周与2017年的第2周不同来对本周进行硬编码
工作订单可能如下所示:
Project A
Disiplin | Week 1 | Week 2 | Week 3 | Week 4 | Week 5 | Week 6
Carpenter | 4 | 3 | 0 | 0 | 3 | 0
Painter | 0 | 0 | 2 | 3 | 3 | 3
下一个项目可能如下所示:
Project B
Disiplin | Week 44 | Week 45 | Week 46 | Week 47 | Week 48 | Week 49
Carpenter | 4 | 3 | 0 | 0 | 3 | 0
Painter | 0 | 0 | 2 | 3 | 3 | 3
Bricklayer| 1 | 2 | 1 | 5 | 3 | 0
Carpentry | 4 | 3 | 0 | 0 | 3 | 0
如您所见,周数和disiplin数量可能因项目而异。我似乎无法围绕如何设计SQL表来有效地存储这些值。
任何人都可以审核这个问题并指出我正确的方向吗?感谢。
编辑:
问题实际上不是存储数据,而是如何查询数据。您永远不知道每个disiplin已注册数据的周数,并且您不知道每个项目中注册了多少个disiplins。此外,第2周你可能已注册木匠的人力需求,但不是画家。我可以对每个disipline进行查询,但我最好有一个查询来获得完整的网格。