私は4つのテーブルを持っています。製造、ProductionPlants、ProducitonLineおよび機械。機械は、いくつかの製品を製造するために使用される機械です。
製造業者は多くのプラントを持つことができ、プラントは多くの生産ラインを持つことができ、多くの機械を持つことができます。したがって、すべての関係は1:Nです。
したがって、テーブルには次のフィールドがあります。
Manufactures (IDManufacture,...)
ProductionPlant (IDProductionPlant, IDManufacture,...)
ProductionLine (IDProductionLine, IDPlant,...)
Machines (IDMachine, IDProductionLine,...)
ただし、これにより、マシンは常に生産ラインに設置する必要がありますが、マシンをアンインストールして使用しない場合もありますが、それでもメーカーの所有物です。
設計では、マシンテーブルのIDProductionLineフィールドをnullに設定すると、このマシンを所有しているメーカーを知ることができません。
したがって、最初の解決策は、他のフィールドIDManufactureをMachinesテーブルに追加することです。これにより、null IDProductionLineを設定できますが、所有者を知ることができます。
しかし、これが良い解決策であるかどうかは疑問です。これは、関係にサイクルを作成するためです。マシンから、IDMachineまたはLineProducion->PlantProductionによって製造を知ることができるからです。これは問題ですか、それとも良い解決策ですか?
いつサイクルを排除するのか、そしていつサイクルを持つことが許されるのか?
ありがとう。