In der Benutzerdatenbank RESERVDB sind zwei Tabellen namens XMLFLIGHTTB und XMLPASSENGERTB enthalten. Die folgende Abbildung veranschaulicht, wie die Daten in beiden Tabellen von den Nachrichtenflüssen 'XML_Reservation' und 'XML_CancelReservation' modifiziert werden. Die Nachrichtenflüsse 'XML_PassengerQuery' und 'XML_FlightQuery' fragen hingegen die Informationen nur ab und ändern keine Daten.
Die Tabelle XMLFLIGHTTB enthält aktuelle Informationen zu verfügbaren Sitzplätzen auf bestimmten Flügen. Die Tabelle XMLFLIGHTTB wird bei ihrer Erstellung mit Daten zu den Flügen gefüllt. Die Daten in der Tabelle werden von den Nachrichtenflüssen 'XML_Reservation' und 'XML_CancelReservation' modifiziert.
In der folgenden Tabelle sind Informationen zu den Feldern in XMLFLIGHTTB enthalten.
Feldname | Datentyp | Null? | Inhalt |
---|---|---|---|
FLIGHTDATE | CHAR (Zeichen) | Nein | Das Flugdatum. |
FLIGHTNO | CHAR (Zeichen) | Nein | Die Flugnummer. |
ECONOMICCLASS | INTEGER (Ganze Zahl) | Nein | Die Anzahl der in der Economy Class reservierten Sitzplätze. |
FIRSTCLASS | INTEGER (Ganze Zahl) | Nein | Die Anzahl der in der ersten Klasse reservierten Sitzplätze. |
TOTALECONOMIC | INTEGER (Ganze Zahl) | Nein | Die Anzahl der in der Economy Class verfügbaren Sitzplätze. |
TOTALFIRST | INTEGER (Ganze Zahl) | Nein | Die Anzahl der in der ersten Klasse verfügbaren Sitzplätze. |
ECONOMICPRICE | INTEGER (Ganze Zahl) | Nein | Der Preis für einen Sitzplatz in der Economy Class. |
FIRSTPRICE | INTEGER (Ganze Zahl) | Nein | Der Preis für einen Sitzplatz in der ersten Klasse. |
STARTPOINT | CHAR (Zeichen) | Nein | Abflugflughafen. |
ENDPOINT | CHAR (Zeichen) | Nein | Zielflughafen. |
RESERVATIONSEQNO | INTEGER (Ganze Zahl) | Nein | Die Anzahl der bisher vorgenommenen Reservierungen. Der Nachrichtenfluss 'XML_Reservation' verwendet diese Zahl zur Generierung von eindeutigen Reservierungsnummern für die Passagiere. |
Wenn ein Passagier einen Sitzplatz für einen Flug reserviert, reduziert der Nachrichtenfluss 'XML_Reservation' die Anzahl der verfügbaren Sitzplätze in der jeweiligen Klasse. Diese Zahl wird in den Feldern TOTALECONOMIC und TOTALFIRST der Tabelle XMLFLIGHTTB angezeigt. Der Nachrichtenfluss 'XML_Reservation' erhöht die Anzahl der reservierten Sitzplätze in den Feldern ECONOMICCLASS und FIRSTCLASS.
Wenn die Tabelle erstellt und mit Daten gefüllt wird, ist der Wert für RESERVATIONSEQNO in jeder Zeile der Tabelle XMLFLIGHTTB "0". Wenn Sie den Nachrichtenfluss 'XML_Reservation' unter Verwendung der ersten Eingabenachricht zum ersten Mal ausführen, erhöht sich der Wert für RESERVATIONSEQNO in jeder Tabellenzeile auf "4", um anzuzeigen, dass vier Reservierungen vorgenommen wurden. Der Wert für RESERVATIONSEQNO erhöht sich auf "5", wenn Sie den Nachrichtenfluss 'XML_Reservation' unter Verwendung der zweiten Eingabenachricht ausführen. mit Hilfe von RESERVATIONSEQNO werden eindeutige Reservierungsnummern erstellt. Die Zahl in den Feldern für RESERVATIONSEQNO wird nicht herabgesetzt, wenn Reservierungen storniert werden.
Wenn die Reservierungen storniert werden, erhöht der Nachrichtenfluss 'XML_CancelReservation' die in den Feldern TOTALECONOMIC und TOTALFIRST angezeigte Anzahl der verfügbaren Sitzplätze und setzt die in den Feldern ECONOMICCLASS und FIRSTCLASS angezeigte Anzahl der Reservierungen für den Flug herab.
Die Tabelle XMLPASSENGERTB enthält aktuelle Informationen zu den Passagieren, die Sitzplätze für die in XMLFLIGHTTB aufgelisteten Flügen reserviert haben. Wenn die Tabelle XMLPASSENGERTB erstellt wird, enthält sie keine Daten. Die Nachrichtenflüsse 'XML_Reservation' und 'XML_CancelReservation' fügen der Tabelle Daten hinzu bzw. entfernen Daten aus der Tabelle.
Die folgende Tabelle enthält Informationen zu den Feldern in der Tabelle XMLPASSENGERTB.
Feldname | Datentyp | Null? | Inhalt |
---|---|---|---|
LASTNAME | CHAR (Zeichen) | Nein | Der Nachname des Passagiers. |
FIRSTNAME | CHAR (Zeichen) | Nein | Der Vorname des Passagiers. |
FLIGHTNO | CHAR (Zeichen) | Nein | Die Flugnummer. |
FLIGHTDATE | CHAR (Zeichen) | Nein | Das Flugdatum. |
CLASSTYPE | CHAR (Zeichen) | Nein | Die Sitzklasse, die reserviert wurde. |
RESERVATIONNO | VARCHAR | Nein | Die eindeutige Reservierungsnummer, die vom Nachrichtenfluss 'XML_Reservation' zugewiesen wird. |
Wenn ein Passagier einen Sitzplatz für einen Flug reserviert, fügt der Nachrichtenfluss 'XML_Reservation' für jeden Passagier, der eine Sitzreservierung vorgenommen hat, jeweils eine Zeile zur Tabelle XMLPASSENGERTB hinzu. Die erste Eingabenachricht für 'XML_Reservation' fordert vier Reservierungen an, so dass vier Datenzeilen hinzugefügt werden. Die zweite Eingabenachricht fordert eine Reservierung an, so dass eine Datenzeile hinzugefügt wird und sich die Gesamtzahl der Datenzeilen in der Tabelle auf fünf erhöht.
Die Spalte RESERVATIONNO enthält die Reservierungsnummern, die zur eindeutigen Identifizierung der Reservierungen automatisch generiert wurden. Jedes Mal, wenn Sie den Nachrichtenfluss 'XML_Reservation' erneut ausführen, erhöht sich der Wert für RESERVATIONSEQNO.
Wenn die Reservierungen storniert werden, entfernt der Nachrichtenfluss 'XML_CancelReservation' die Reservierungen aus der Tabelle XMLPASSENGERTB. Bei der Stornierung von Reservierungen wird der Wert im Feld RESERVATIONSEQNO in der Tabelle XMLFLIGHTTB nicht zurückgesetzt, so dass die Reservierungsnummer für neue Reservierungen im Feld RESERVATIONNO der Tabelle XMLPASSENGERTB stets eindeutig ist.