我有四张桌子。制造商、生产工厂、生产线和机器。机器是用于制造某些产品的机器。
一个制造厂可以有很多工厂,一个工厂可以有很多生产线可以有很多机器。所以所有的关系都是1:N。
所以这些表有以下字段:
Manufactures (IDManufacture,...)
ProductionPlant (IDProductionPlant, IDManufacture,...)
ProductionLine (IDProductionLine, IDPlant,...)
Machines (IDMachine, IDProductionLine,...)
然而,这使得机器必须始终安装在生产线上,但有时机器可以卸载,不使用,但仍然是制造商的财产。
在设计中,如果我将机器表中的 IDProductionLine 字段设置为空,那么我将无法知道拥有这台机器的制造商。
所以第一个解决方案是将其他字段添加到 Machines 表中,即 IDManufacture,这样我可以将 IDProductionLine 设置为空,但仍然可以知道所有者。
但我怀疑这是否是一个好的解决方案,因为这会在关系中创建一个循环,因为从机器中,我可以通过 IDMachine 或 LineProducion-->PlantProduction 了解制造。这是一个问题还是一个好的解决方案?
什么时候消除循环,什么时候允许有循环?
谢谢。