![]() |
Модераторы: skyboy |
![]() ![]() ![]() |
|
krinart |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 75 Регистрация: 10.4.2008 Где: Донецк Репутация: нет Всего: нет |
Всем доброго дня.
Есть проблема, которую хотелось бы решить. Есть такие таблицы
Смысл в том, что есть таблица туры(tours), в которой хранится информация о турах(даты, цена и т.д.), есть таблица tour_hotel, в которой связываются туры и отели, в которых проживают люди. Это сделано для того, чтобы с одним туром могло быть связано несколько отелей. В таблице tours есть поле type, в котором хранится количесто отелей, связанных с этим туром, на практике оно бывает равно либо 1, либо 2. Поле hotelOrder показывает, в каком порядке происходит проживание в отелях в каждом туре(1, 2 и т.д.). В таблице tour_hotel есть информация о проживании в отеле, для примера я сделал одно поле param. Например, это может выглядеть так tours |----------|---------| | tourID | type | |----------|---------| | 1 | 2 | |----------|---------| то есть у тура 2 отеля tour_hotel |--------------------|-----------|--------------|--------------------|----------------| | tour_hotel_ID | tourID | hotelID | hotelOrder | param | |--------------------|-----------|--------------|--------------------|----------------| | 1 | 1 | 10 | 1 | 123 | |--------------------|-----------|--------------|--------------------|----------------| | 2 | 1 | 20 | 2 | 123 | |--------------------|-----------|--------------|--------------------|----------------| соответсвенно, с первым туром связаны два отеля, у которых указана очередность проживания и некий параметр Таблицу hotels не привожу, так как в её структуре ничего интересного нет. Теперь, собственно, вопрос. Как мне сделать связывание таблицы tours с таблицей tour_hotel, если hotel.type=2, два раза? Например, есть такой запрос
Но мне нужно, чтобы этому параметру соответстовали и остальные отели в этом туре. Я придумал способ, по котому я ВСЕГДА сравниваю два отеля, подставляя для второго в условие по th.hotelOrder количество отелей в туре, то есть либо ещё раз первый, либо, как и требуется, второй
Но и ежу понятно, что это не самый оптимальный способ, особенно если учесть, что туров будет хранится несколько миллионов(!). А выбирать сначала первые отели, а потом циклом перебирать все остальные в этому туре - тоже не хочется. Посоветуйте, а? |
||||||
|
|||||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | MySQL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |