I am using mysql as my backend database. Here is the use case;
A HolidayPackage
is configured with some default offerings
. These default offerings can be up/downgraded based on the options provided. Each offering belongs to different types of variants
:
- Hotels
- Origin city
For starters, I want to design the use case of Origin city:
There is a GOA package. It can be offered in 3 variants based on Origin city;
- From New Delhi to Goa
- From Bombay to Goa
- Goa itself ( Land package )
(Bold implies default selection)
a. and b. User can fly from either New Delhi or Bombay to GOA.
c. Goa is a Land package, where a user can reach Goa by himself and is a standalone holidayPackage.
Also, we need to further support the following use cases with a variant category (Origin City):
- one of the options in a variant can be marked as default by the admin, which will be a part of the offered inclusions (e.g. Bombay to Goa)
In the database, I need to model these relationships. Here is what I have in mind.
HolidayPackage
has MANY to MANY relationship with Destination
(read origin city). This will take care of options like:
- From New Delhi to Goa
- From Bombay to Goa
My concern:
- How do I handle Land packages only i.e. "Goa itself" and we don't have a travel leg ?
- How can I mark an option for a package,
default
at the database level ?
Best Answer
Package versions:
and subtypes (of versions):
and default Package Version: