Es ging mir vor allem um die Modellierung der Beziehungen zwischen den Objekten und Klassen.
So wie ich den TE verstanden habe, möchte der Bearbeiter wissen, wo welche Materialien liegen. Dabei war es für mich logisch, dass die Suchkette damit beginnt, dass in einem Objekt Lager, dem "Root-Objekt", eine Suche nach dem Material durchgeführt wird. Deshalb benötigt dieses Objekt Lager doch eine Liste der abgelegten Materialien (Klasse Material). In diesem Sinne wäre es doch schlau, wenn das Objekt Material eine Liste der Lagerplätze enthält, wo Bestände dieses Materials abgelegt ist. Suche ich "Waschbenzin", dann bekomme ich raus, dass "30 Liter an Stelle A3 " und "50 Liter auf an Stelle B4" sind. Ich habe auch überlegt, diesen Plätzen die Standorte (Boden, Werkstatt, Keller) zuzuordnen, aber ich bin dabei auf der n-Seite einer 1:n-Beziehung. Und das fand ich nicht so gut. Daher war ich dazu übergegangen, dass die Klasse Lager eine Liste der Standorte enthält, die wiederum die Liste der Lagerplätze enthält, die bei ihm sind.
Nun ist es recht egal, ob A3 (oder B4) eine abgekreidete Fläche beschreibt oder ein Fach in einem Schrank. Das ist zuerst zwar etwas umständlich umzusetzen, denn der Gabelstapler ist ja einfach da, aber dem muss trotzdem ein Standort zugewiesen werden, sonst platzt das Modell.
Wenn der Lagerist weiß, dass sich 5 Kisten Schrauben M5x60 auf dem Boden befinden, dann hilft dem das wenig, wenn es dort 300 Meter Lagerfläche gibt. Das wäre schon die Suche einer Stricknadel im Heuhaufen. Ich glaube, da wäre dann eine genauere Festlegung des Ortes besser.