2013-12-11 59 views
2

我有三个主表,WorkOrders,Computers和Tasks。 WorkOrders是修理计算机的命令。那么计算机将会被修复,日期等等。这是一个很好的解决方案设计吗?

计算机是在发生故障时必须维修的计算机。最后,我有可以在电脑上完成的任务。

在第一个近似值中,工作订单和计算机之间的关系为1:N,因为计算机可以多次修复,但工作订单仅适用于一台计算机。

计算机和任务之间的关系是1:N,因为一台计算机可能需要修复许多任务,但一个任务是在计算机中完成的。

这样的关系,可以在这个方法设置:

WorkOrders(IDOrder, IDComputer, ...) 
Computers(IDComputer, ...) 
Tasks(IDTask, IDComputer,...) 

然而,这并不让我知道什么是任务在工作定做。因为如果一台电脑被多次修复,我怎么知道哪个任务是另一个工作的一个工作?

所以我可能正在考虑以这种方式使用的关系表:

CommonTable(IDOrder, IDComputer, IDTask,...) 

但这种方式似乎任务可以在多台计算机和许多订单,而这是不正确的理论上。

其他解决方案是在任务中添加IDOrder,但在这种情况下,我在关系中有一个循环,并且我认为这是不正确的。

所以我想知道这是一个很好的解决方案,或者有更好的解决方案。

回答

2

任务应该与WorkOrder相关,而不是计算机。然后,您可以使用任务(至)WorkOrder(至)计算机查找该计算器的计算机。

+0

此外,您可以使用连接在工作订单中查找任务。 –

相关问题