Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Datenbank für Container

Begonnen von PeteTheBeat, Juli 09, 2026, 12:29:13

⏪ vorheriges - nächstes ⏩

PeteTheBeat

Moin zusammen,
ich möchte mir eine ,,Containerdatenbank" erstellen.

Diese soll dazu dienen:

•   vorhandene Container, mit Standort, zu ermitteln
•   Container abziehen, tauschen oder aufstellen zu lassen
•   Container können von verschiedenen Anbietern sein
•   Container können unterschiedliche Inhalte haben
•   Nachdem ein Container abgezogen oder getauscht wurde, muss im Nachgang das Gewicht des Inhalts eingepflegt werden
•   Aufträge zum Container abziehen, tauschen oder aufstellen zu lassen sollen Druck und oder Mailbar sein


Folgende Tabellen würde ich anlegen:

•   tbl_Conainer
•   tbl_Container_Eingang (mit Lösch Option?)
•   tbl_Container_Inhalt
•   tbl_Anbieter
•   tbl_Container_Abgang (hier sollen im Nachgang das Gewicht eingetragen werden)
•   tbl_Container_Standort

Wie könnte man bei einem Container ,,Abgang" das gleichzeitige Austragen aus der tbl_Eingang und das Eintragen in die tbl_Abgang realisieren, um später das Gewicht nachzutragen und zu dokumentieren?
Über eure Einschätzung und Tipps wäre ich sehr dankbar.

MzKlMu

Hallo,
Eingang und Ausgang gehören in eine Tabelle. Es könnte auch sinnvoll sein, das Leer (bzw. Eingangsgewicht) zu erfassen.
Über ein Eingangs und Ausgangsdatum kann das unterschieden werden.
Gruß Klaus

PeteTheBeat

Zitat von: MzKlMu am Juli 09, 2026, 12:53:55Hallo,
Eingang und Ausgang gehören in eine Tabelle. Es könnte auch sinnvoll sein, das Leer (bzw. Eingangsgewicht) zu erfassen.
Über ein Eingangs und Ausgangsdatum kann das unterschieden werden.

Vielen Dank für deine Antwort
Wenn alle Container in einer Tabelle sind, wie bestimme ich dann die Container die zur Verfügung / auf dem Hof sind stehen

Knobbi38

Indem du einen Standort/Status pflegst, der dem Container zugeordnet ist. Das gleiche passiert mit dem Leergewicht eines Containers.

Knobbi38

andyfau

Hallo,
im Grunde benötigst Du erstmal nur zwei Tabellen. Eine, die die Stammdaten des Containers aufnimmt: eindeutige ID des Containers, Größe, Farbe, Hersteller, etc.
Damit verbindest Du eine Bewegungstabelle, in der jeder Zugang und Abgang gespeichert werden  mit : BewegungsID (Autowert), ContainerID als Fremdschüssel. Weitere Felder: Bewegugsdatum, Kenzeichen, ob Zu/Abgang, Lagerplatz, Füllgewicht, usw.
Über entsprechende Abfragen lassen sich dann über alle oder jeden einzelnen Container die Bewegungen zählen und zeitlich nachverfolgen. Die letzte Bewegung (Max(Bewegungsdatum) eine Containers) lässt sich dann z.B. feststellen, wo er sich gerade befindet.
Um die Datenbank zu optimieren sollten die Tabellen aber weiter normalisiert werden. D.h. Es sollte Untertabellen für Werte, die häufiger in gleicher Form vorkommen, geschaffen werden. Beispiel Containerhersteller oder Kunden, etc. So benötigt man in der Bewegungstabelle mur die jeweilige ID des Herstellers oder Kunden. Leseempfehlung: www.access-tutorial.de
Beste Grüße
Andreas

PeteTheBeat

Zitat von: Knobbi38 am Juli 09, 2026, 13:22:35Indem du einen Standort/Status pflegst, der dem Container zugeordnet ist. Das gleiche passiert mit dem Leergewicht eines Containers.

Knobbi38
also in einer Haupttabelle einen Status. .ok
Leergewicht benötige ich nicht. Ich bekomme die Wiegenote

MzKlMu

Hallo,
ZitatLeergewicht benötige ich nicht.
natürlich brauchst Du auch das Leergewicht. Wie sonst willst Du die Füllmenge berechnen?
Das Leergewicht ändert sich ja nicht und gehört somit in die Stammdatentabelle der Container.
Zitatalso in einer Haupttabelle einen Status. .ok
Nein, nicht in der Haupttabelle.
Gruß Klaus

Beaker s.a.

Hallo,
ZitatNein, nicht in der Haupttabelle.
Eigentlich nirgends, - der Status lässt sich zu jeder Zeit aus der
Bewegungstabelle ermitteln. Siehe Andreas schöne Zusammenfassung.

gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

Knobbi38

ZitatEigentlich nirgends, - der Status lässt sich zu jeder Zeit aus der
Bewegungstabelle ermitteln.
Nein, nicht alles ist mit einer Bewegung verbunden, z.B. wenn ein Container gesperrt wird usw. Erst wenn ein Container freigegeben wird, kann er "bewegt" werden. Andere Status sind ebenso denkbar:
1. PHYSISCHER TRANSPORT-STATUS
Empty at Depot (Bereit zur Abholung beim Depot)
Gate-Out Empty (Leer am Depot für die Beladung abgeholt)
At Shipper (Steht beim Versender und wird aktuell beladen)
Gate-In Terminal (Beladen am Abfahrtshafen/-terminal eingetroffen)
Loaded on Vessel (Auf das Schiff/Zug/Lkw verladen)
In Transit (Aktiv unterwegs auf der Hauptstrecke)
Discharged (Im Zielhafen vom Schiff gelöscht und abgestellt)
Gate-Out Full (Vom Zielhafen zur finalen Zustellung abgeholt)
At Consignee (Beim Empfänger angekommen und wird entladen)
Gate-In Empty (Leer im Zieldepot zurückgegeben)
 2. ZOLL- UND FREIGABE-STATUS
Customs Hold (Vom Zoll für eine Prüfung blockiert)
Customs Cleared (Zollrechtlich für die Weiterfahrt freigegeben)
Carrier Hold (Vom Reeder blockiert, z. B. wegen fehlender Zahlung)
Released (Finanziell und organisatorisch komplett freigegeben)
 3. QUALITÄTS- UND WARTUNGS-STATUS
Available (Einsatzbereit und sauber)
Damaged (Beschädigt, z. B. Loch in der Wand oder defekte Tür)
Under Inspection (Wird auf Schäden oder Schmuggelware geprüft)
In Repair / Maintenance (In der Werkstatt zur Reparatur)
To be Cleaned (Muss vor der nächsten Beladung gereinigt werden)
 4. SONDERSTATUS FÜR KÜHLCONTAINER (REEFER)
Power Off (Kühlung ist ausgeschaltet)
Power On / PTI Passed (Kühlung läuft, Funktionstest vorab erfolgreich)
Temperature Alarm (Kritische Abweichung von der Solltemperatur)
Genaugenomen bräuchte man eine Lookuptabelle und eine Container_Status_History Tabelle, wann welcher Container welchen Status hatte.

Knobbi38

PeteTheBeat

Zitat von: MzKlMu am Juli 09, 2026, 16:40:40Hallo,
ZitatLeergewicht benötige ich nicht.
natürlich brauchst Du auch das Leergewicht. Wie sonst willst Du die Füllmenge berechnen?

Das Leergewicht wird nicht benötigt. Die Füllmenge wird nicht errechnet sondern Gewogen

Zitat von: Knobbi38 am Juli 09, 2026, 21:13:41Genaugenomen bräuchte man eine Lookuptabelle und eine Container_Status_History Tabelle, wann welcher Container welchen Status hatte.

Knobbi38

Ok, Container_Status. Hört sich gut an

Zum allgemeinen Verständnis, ich möchte mit der Datenbank folgendes Abdecken.

  • Welche Container sind auf dem Hof?
  • Für was war der Container ( Inhalt) vorgesehen
  • Was ist in dem Containern bei der Abholung
  • Wie schwer war der Inhalt
  • Wer hat den Container, wann abgeholt

Es ist eine Container "rein/raus" Datenbank bei der, der Inhalt, der Dienstleister, das Datum und das Gewicht erfasst wird.
Zoll, Zielhafen oder ähnlichen braucht nicht berücksichtigt werden.
Der Arbeitsablauf ist wie folgt:
Dispo informieren, dass der Container mit der Nr. XXXX und dem Inhalt XXX, an Ort XXX, getauscht, abgezogen oder aufgestellt werden soll.

Die tbl_AVV ( Inhalt) habe ich schon erstellt.Wie ich genau die tbl_Container_Status oder Bestell-History anlege ,auch als Abfrage, stell ich mir wenn es soweit ist  :-*
Ich werde hier einen zwischenstand Posten
Vielen dank schon mal
 

Knobbi38

Im Grunde reicht dafür dann eine einzige Verlaufstabelle mit wenigen Lookuptabellen. Die Verlaufstabelle wird dann immer fortgeschrieben.

  • tblContainer
  • tblDienstleister (Logistikpartner)
  • tblContainerBewegungen (Rein/Raus/Dispo)
  • tblStandort

Das Schema könnte dann ungefähr so aussehen:
tblContainer               tblContainerBewegungen             tblDienstleister
────────────               ──────────────────────             ────────────────
ContainerID  ───(1:n)───>  ContainerID_F                      DienstleisterID ───(1:n)───┐
                           OrtID_F <───(1:n)─── tblStandort                              │
                           InhaltVorgesehen    └────────────── OrtID                     │
                           InhaltBeiAbholung                                             │
                           Gewicht_kg                                                    │
                           DienstleisterID_F <───────────────────────────────────────────┘
                           ZeitpunktAusfuehrung
                           Status

Knobbi38

PeteTheBeat

#11
Zitat von: Knobbi38 am Heute um 10:31:48Im Grunde reicht dafür dann eine einzige Verlaufstabelle mit wenigen Lookuptabellen. Die Verlaufstabelle wird dann immer fortgeschrieben.

  • tblContainer
  • tblDienstleister (Logistikpartner)
  • tblContainerBewegungen (Rein/Raus/Dispo)
  • tblStandort

Das Schema könnte dann ungefähr so aussehen:
tblContainer              tblContainerBewegungen            tblDienstleister
────────────              ──────────────────────            ────────────────
ContainerID  ───(1:n)───>  ContainerID_F                      DienstleisterID ───(1:n)───┐
                          OrtID_F <───(1:n)─── tblStandort                              │
                          InhaltVorgesehen    └────────────── OrtID                    │
                          InhaltBeiAbholung                                            │
                          Gewicht_kg                                                    │
                          DienstleisterID_F <───────────────────────────────────────────┘
                          ZeitpunktAusfuehrung
                          Status

Knobbi38

Ich habe jetzt 8 Lookup Tbl.
Jetzt würde ich mich an tbl_ContainerBewegungen oder Bestellungen ran machen.

Wie würde ich denn Abfragen wieviel Container ich zur Zeit in "Obhut" habe? Über ein Ankunft und Abgangsdatum ?
Kein Abgangsdatum würde bedeuten das der Container noch da ist.

Ich stehe gerade vor der Aufgabe.
Ein Container kommt an, Aufstellen mit Datum.
Der gleiche Container wird Abgeholt mit Datum. Ist das ein Datensatz der Bearbeite / Aufgefüllt  wird ?

Wie würde man eine "Geplante" Abholung vermerken? (Auch für einen späteren Bericht)

Knobbi38

#12
ZitatWie würde ich denn Abfragen wieviel Container ich zur Zeit in "Obhut" habe? Über ein Ankunft und Abgangsdatum ?
Kein Abgangsdatum würde bedeuten das der Container noch da ist.
Du hast doch den aktuellen Container Standort schon als Feld oder über den Status, je nachdem, wie du das aufbaust.

ZitatIch stehe gerade vor der Aufgabe.
Ein Container kommt an, Aufstellen mit Datum.
Der gleiche Container wird Abgeholt mit Datum. Ist das ein Datensatz der Bearbeite / Aufgefüllt  wird ?
Nein, das sind zwei unterschiedliche DS. Deine Bewegungen werden, wie in der Logistik eigentlich üblich, als Protokoll geführt oder auch, wenn du so willst als History. Für jedes Ereignis ein neuer DS.

Du buchst beispielsweise einen ankommenden Container mit dem Status "Rein" und dem Standort "Hof". "Rein" bedeutet, dass er sich auf dem Hof befindet. Über den Standort kannst du den Bereich noch weiter eingrenzen, z.B. Hof Ebene 2, wenn du ein Stapellager hast. Vielleicht brauchst du das im Moment noch nicht, ich würde es aber schon mal vorbereiten. Professionell verwendet man als Standort auch "Koordinaten", so können Ebenen, externe Lager usw. in einem Rutsch verwaltet werden.

Knobbi38

PS:
Von wie vielen Container sprechen wir hier eigentlich und von wie vielen Transaktionen pro Stunde? Mit einem SQL Datenbankserver und Triggern kann möglicherweise einiges optimiert werden.