This week's book giveaway is in the OCAJP 8 forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide and have Edward Finegan & Robert Liguori on-line! See this thread for details.
After reading probably all the posts related to the segment - flight problem, I tried to put something together that will not break with the current BDM. I hope I will not break any rules in posting this, since its not a solution or anything, its just my view which I want to discuss with other part 2 takers interested in this mater.
I'm assuming that a flight has a unique id as pk, a flight number, a departure city, a destination city and an airplane id. It also has some other more detailed attributes such as times and dates, but these are irrelevant now. A flight number is coupled to the airplane. When the aircraft changes in a flight, I consider them two different flights with different flight numbers. Actually, there is no such thing as aircraft change on a flight, it is a logical concept. It are basicly two independed flights of which the first arrives on airport x and the second happens to depart at the same airport some time later. For the customer it will look like he has to change airplane, for the employee entering the flights it will look as two independent flights that *might* have been shedulded in such a way that it would be convenient for passengers traveling from A to C to take plane1 for A to B and some hours later plane2 from B to C.
1. When a flight lands between the departure and destination and people are allowed to leave/board the plane, then it has multiple entries with the same flight number:
2. The same illustration as in 1, but now the aircraft changes. This means that it are all independed flights, and thus each flight has its own flight number
When the flight in question is a real non-stop flight, then only one entry is listed.
When the flight is non-stop, but a landing is made, but no boarding/leaving the plane is allowed (ex. re-fueling) then this will be indicated by a additional column "comments" or something. It is however not relevant for the customer, since leaving the plane or boarding at the stop location is not allowed. For the systems point of view, this scenario is the same as a real non-stop flight.
These flights/equipment combinations are entered into the system by personel. They are not changed by the system, only read.
Now, when a customer enters a departure and destination the system will search this flight table and return the matches to the user. Here is the point where I make my assumption about the goal of the segment.
Take this flight table for example:
In the search fields I enter-> dep: amsterdam dest: new york
The flights presented on the customer's screen:
Finally when the customer selects an option, a corresponding number of segments are created for the customer. When the customer selects option 2, it would not be directly possible to add flight 001 to the customers iternary, since that would mean flying from cairo to chicago. Instead a segment is created indicating that only a part of the flight is used.
Using this perception, a segment points to one flight number, but it can consist out of more then one flight id.
When for example dept: Amsterdam dest: Chicago is taken, the segment will look like:
but it would resolve to two different flight id's.
When option one is chosen, two different segments would be created:
When the iternary lists is shown for the second option, it will list only one flight (F001). When the first option is used but with destination chicago, it will still show one flight (F001). It will however mention the fact that there is one stop in new york.
For the first option, it will show two flights. (If one of these flights has a stop, it would mention the stop(s) as with the second 'chicago' option).
Thats it. Please tell me how you feel with this interpretation.
Note that I'm not very keen on all off this, but in my opinion it gives a reasonable explanation for the existence of several classes and it does not brake with the use cases or the BDM. [ November 06, 2005: Message edited by: Koen Serneels ]
wow that's pretty comrehensive. did not read your posting completely - but her's what I did. I introducedd the concept of a TRIP to link the segments and the flights. An itinerary can have many trips. a trip may have one or more segments( in case of a layover fr ex). Each segment is asscociated with a flight - the flight in this case is on a per segment basis 1-1 as in the BDM. I felt it was necessary to introduce te notion of a TRIP. As mentioned by the ranchers, as long as you document the need for the change, it should be ok
My approach is also pretty similar to this, but with some variations. But I don't want to explain that here and start a discussion because, there are different ways you can solve this assignment. As long as you make your point clear in the document, it is well and good. Just try to include what you explained here in your document, and make the examiner clear about the way you approached to solve this situation.