Прежде чем ответить, я бы хотел договориться о встрече: цена полета зависит только от типа пассажира и типа салона? расстояния между пунктами назначения не имеют значения?
Если вы используете базовые нормальные формы, у вас должны быть следующие таблицы (с некоторыми полями только для примера). У этой модели цена будет в таблице «Рейс», в которой планируется хранить значения для кабины, рейса и типа пассажира. Таким образом, один рейс будет иметь девять записей для (Взрослый, ребенок, младенец) x (экономика, средний бизнес, бизнес). Другим способом, который потребляет меньше строк для каждого рейса, является сохранение модификаторов для типов пассажиров. Например: щит платит 50% от цены и т. Д., Но вот код:
CREATE TABLE `passenger` (
`pss_id` bigint(20) NOT NULL,
`pss_name` varchar(255) NOT NULL,
`pss_type` bigint(20) NOT NULL,
PRIMARY KEY (`pss_id`),
CONSTRAINT `fk_idtypepass` FOREIGN KEY (`pss_type`)
REFERENCES `pass_type` (`pst_id`)
ON DELETE NO ACTION ON UPDATE CASCADE
)
CREATE TABLE `pass_type` (
`pst_id` bigint(20) NOT NULL,
`psd_description` varchar(255) NOT NULL,
PRIMARY KEY (`pst_id`))
CREATE TABLE `destination` (
`dst_id` bigint(20) NOT NULL,
`dst_name` varchar(255) NOT NULL,
PRIMARY KEY (`dst_id`))
CREATE TABLE `cabin` (
`cbn_id` bigint(20) NOT NULL,
`cbn_name` varchar(255) NOT NULL,
PRIMARY KEY (`cbn_id`))
CREATE TABLE `flight` (
`fli_id` bigint(20) NOT NULL,
`fli_from` bigint(20) NOT NULL,
`fli_to` bigint(20) NOT NULL,
`fli_cabin` bigint(20) NOT NULL,
`fli_psstype` bigint(20) NOT NULL,
`fli_price` double NOT NULL,
PRIMARY KEY (`fli_id`),
CONSTRAINT `fkn_from` FOREIGN KEY (`fli_from`) REFERENCES `destination` (`dst_id`) ON UPDATE CASCADE ON DELETE NO ACTION,
CONSTRAINT `fkn_to` FOREIGN KEY (`fli_to`) REFERENCES `destination` (`dst_id`) ON UPDATE CASCADE ON DELETE NO ACTION,
CONSTRAINT `fkn_cabin` FOREIGN KEY (`fli_cabin`) REFERENCES `cabin` (`cbn_id`) ON UPDATE CASCADE ON DELETE NO ACTION,
CONSTRAINT `fkn_psstype` FOREIGN KEY (`fli_psstype`) REFERENCES `pass_type` (`pst_id`) ON UPDATE CASCADE ON DELETE NO ACTION)
CREATE TABLE `flight_x_passenger` (
`fxp_id` bigint(20) NOT NULL,
`fxp_flight` bigint(20) NOT NULL,
`fxp_passenger` bigint(20) NOT NULL,
PRIMARY KEY (`fxp_id`),
CONSTRAINT `fk_flight` FOREIGN KEY (`fxp_flight`) REFERENCES `flight` (`fli_id`) ON UPDATE CASCADE ON DELETE NO ACTION,
CONSTRAINT `fk_passenger` FOREIGN KEY (`fxp_passenger`) REFERENCES `passenger` (`pss_id`) ON UPDATE CASCADE ON DELETE NO ACTION
)
Любые вопросы, пожалуйста, свяжитесь со мной. С уважением.