все же раздельно и записи в одном экземпляре. причем тут нф?
Вот таблицы:
htl_periodes //Периоды. В этой и только в этой таблице есть id самого отеля, который нужно выбрать
htl_periode_id
htl_periode
htl_id
htl_costs //Цены
htl_cost_id
htl_periode_id
htl_cost_type_id
htl_room_type_id
htl_cost
htl_cost_types //Основные типы размещения в отелях
htl_cost_type_id
htl_cost_type
htl_room_types //Дополнительные типы размещения в отелях
htl_room_type_id
htl_room_type
конкретно вот это:
htl_costs //Цены
htl_cost_id
htl_periode_id
htl_cost_type_id
htl_room_type_id
htl_cost
что, собственно, и происходит, судя по стонам ТС
"раздельно", это вот так:
hotels:
htl_id,htl_desc
room_type (типы размещений)
:
room_id,room_desc
далее стоимость (cost)... вот эта картинка причиняет боль:
почему SUITE и JSUITE это одновременно и cost_type, и room_type ?
непонятно.
ну да пофиг, пусть это будет 2 таблицы:
dop_uslugi1:
id,desc
и
dop_uslugi2:
id,desc
кто такие
htl_periodes не совсем понял, но походу нахуй не нужно:
В таблице htl_periodes и только в ней одной содержатся htl_id конкретных отелей, из которых надо выбрать один.
Если бы не это, то таблица эта вообще не нужна была бы.
если у тебя там периоды заселения со скидками, типа: 1 мес = 5%, 2 = 10%, то да, это отдельная таблица, только без htl_id
а иначе вообще непонятно, что это?
Короче, после упорядочивания этого бардака, мы получим действительно раздельные таблицы, которые потом можно скрещивать, как угодно, через Нормальные Формы. И тогда такая задача:
Чтобы выбирались все основные типы размещение из таблицы htl_cost_types.
Если при этом есть в таблице htl_costs есть записи, где одному основному типу размещения соответствуют один или несколько дополнительных типов размещения, чтобы основной тип размещения выводился столько раз, сколько есть комбинация основных и дополнительных типов размещения.
...становится тривиальной...
Потому что есть таблица по Первой Нормальной Форме:
dop1_dop2:
dop1_id,dop2_id
1,5
1,7
1,8
2,3
3,6
3,8
3,12
6,7
6,9
6,10
(только вот зачем привязывать услуги друг к другу, когда они должны быть привязаны к клиенту, например, или к комнате какой-то?)
в общем дальше делаются такие же формы-таблицы с htl_id, клиентами, ценами, комнатами.
или, если данные позволяют, можно попробовать расширить до 2НФ, 3НФ, где будет как-то так:
room_id,dop1_id,dop2_id
1,1,5
1,1,7
15,1,8
в общем суть понятна.
задача, само по себе, с лёгким налётом запутанности и далека от кристального понимания, поэтому ну её нахуй.