Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > Помогите разобраться со структурой базы банных!!!


Автор: webx 22.7.2006, 17:05
Привет всем!!! 
 Запутался со структурой базы данных и связями, решил попросить помощи у профи, для кого это как семячки, т.е. к ВАМ! 

Нужно зделать бд.
Есть исходные данные и данные , которые поступают постепенно (Заявки).

Исходные данные таковы:
1) Есть информация о отелях: 
  а) названия отелей, 
  б) города где они находятся, 
  в) типы номеров, какие бывают в етом отеле (в разных отелях они разные), 
  г) в различные периоды - различные цены и скидки на каждый тип камнаты, для каждого отеля кол-во   периодов, даты начала и окончания периодов свои. Скидки представленны в виде бесплатных ночей в этих номерах... (пример: если человек живет в гостинеце "Паттая Парк Отель" с 07.01.07 по 15.01.07 получается 7 ночей, а платит за 5 ночей, т.к. попадает в период скидки , который начинается 01.01.07 и заканчивается 17.03.07) 
  д) в некоторых отелях празнуются различные праздники (Новый год, Китайский новый год, Старый новый год, рождество и т.д.) Если человек живет в отеле и на период его проживания выпадает како-то праздник, то он обязан доплатить на праздничный банкет . (Например Семья Пупкиных живет в отеле с 28.12.06 по 25.01.07 , а в этом отеле 31.12.06 Новогодний Ужин, а 14.01.07 Старый Новый ГОД, то Пупкины должны при бронировании этого отеля помимо Оплаты за номер заплатить за ужины 31.12 и 14.01 по 50$ + 35$ с каждого взрослого и 25$ + 20$ c ребенка соответственно)

2) Есть информация о стоимости транспортных услуг: 
  а) направления (откуда и куда), (не толко города и Названия отелей, но и в какой аэропорт)
  б) стоимость услуг на каждом направлении, с разными тарифами, (Тарифы зависят от того, какой тип транспортных услуг выблал клиент , кол-ва человек и нужно сопроваждение гида или нет.)  
  в)тип транспортных услуг (груповой, индивидуальный, ВИП) Группавой это трансфер на автобусе, индивидуальный на машине с водителем, ВИП на рупер тачке)

3) Есть информация о компаниях партнерах: а)Название компании, б)из кокого города, г)кто ее шеф, д)какой процент скидки она имеет. 

4) Есть инфа о авиокассах: 
  а) Название, 
  б) цена авиобилета, 
  в) контактная информация, 
  г) Номер рейса, 
  д) название аэропортов вылета и посадки, 
  е)  даты и время вылета и прилета.

--------------------------------------------------------------------------------

Данные, получаемые:
1) Приходят данные заявки: 
  а) от какой компании партнера, 
  б) сколько человек, (Сколько Взрослых и детей) 
  в) Фамилии людей, 
  г) дата их прилета, 
  д) номер рейса самолета, на котором они прилетают. 
  е) в какой город их надо отвезти и по каким тарифам, 
  ж) в каком отеле они будут жить, в каком типе номера, (возможно, что они 3-и дня живут в одной гостинице, а затем едут в другую и т.д.), 
  з) возможно, что они должны перемещаться из города в город на самолетах местных авиакомпаний.
     В этом случае, им покупается авиабилет в авиокассе.
  и) дата вылета, 
  к) номер рейса.



Мне надо, чтобы я мог :
1)выбиряя заявку, видеть всю инфу
 а) Какая компания партнер их отправила,
 б) Инву о Фамилиях и поле (Я планирую это в дополнительной таблице типа Мастер-Детаилз),
 в) когда приезжают,
 г) в какой аэропорт,
 д) где и сколько живут,
 е) куда и когда их надо перевезти,
 ж) когда уезжают из страны.
 з) Номер их рейса.
 и) сколько они дожны оплатить за все услуги (Встреча, переезд из аэропорта в гостиницу(включая выбранный тип сервиса), стоимость номера в гостинице с учетом в какой период они папали, какой тип номера, есть ли праздники, скидки, плюс стоимость авиобилетов на местные авиалинии(если они куда-то летали))
Информация должна быть представленна как в развернутом виде(сколько за встречу, сколько за отель, сколько за авиобитет и т.д.), так и суммарная....
 
2)смотреть информацию, когда и какие рейсы прилетают и выбрав рейс , увидеть:
  а) номера заявок, 
  Б) сколько человек, 
  г) их фамилии относительно каждой заявки, 
  д) какой вид транспортных услуг они заказали,
  е) куда их везти (в какую гостиницу)
  ж) и дополнительно видеть кагда и куда их надо перевезти потом (Возможно в качестве примечания)

3) видеть инфу, когда и людей из какой комнаты надо перевезти в другой отель или отвезти в аэропорт, чтобы они полетели в другой город...
 
4) когда и каким рейсом они улетают, из какой гостиницы , какая комната, Фамилии людей, номер заявки, какая компания партнер их прислала, какой вид транспотрных услуг и в какой аэропорт везти...

5) Сколько должна заплатить компания партнер за данную заявку с учетом скидки (по поваду 7 ночей, а оплата за 5) , с учетом праздников, периодов в отелях и проценту скидки для этой комнании.

Это самое основное

Вот ссылка на картинку с базой, которую я нарисовал! 
http://zip.bountytour.com/vik.png




Посоветуйте , что мне изменить в структуре, чтобы мои SQL запросы были не сильно замароченные ???

Дополнение: 
Таблицы изображенные на рисунке.
Flights - таблица Международных аваорейсов;
Partners - Таблица компаний партнеров;
Requests - Таблица заявок;
Invois - Таблица Счетов;
Persons - Таблица с данными клиентов;
Request_Details - дополнительная инфа по заявкам;
Numbers - номера отелей;
Numbers_types - типы номеров (Люкс, полу уюкс, стандартный и т.д.);
Hotels - таблица отелей;
Seasons - Таблица сезонов (в разные сезоны, разные цены)
Hotel_prices - тут надеюсь понятно все....
Prazdniki - Таблица праздников;
City - Таблица Городов;
Aeroports - Таблица аэропортов;
Routes - таблица связей (С ее помащью я попытался связать все трансферы и местные авиоперелеты)
Transport - Тип транспорта;
Transport_Prices - Данные по транспорту;
Service_types - Виды транспортных услуг (группавой трансфер, индивидуальный, ВИП)
Aviokassi - Таблица авиокасс на местрые перелеты (Внутри страны)

ПОМОГИТЕ ПЛИЗ!!! 
Зарание благодарен !   

 

Автор: Gold Dragon 22.7.2006, 17:36
webx, вопрос то в чём? Ты уж извини, но это похоже не полноценное  техническое задание, а не на вопрос  smile 

Боюсь ни у кого не будет столько времени... 

Автор: igorold 24.7.2006, 06:41
.... да, это не вопрос и не семЯчки ... это действительно ТЗ ...  

Автор: Ignat 24.7.2006, 09:10
Цитата(webx @  22.7.2006,  18:05 Найти цитируемый пост)
Посоветуйте , что мне изменить в структуре, чтобы мои SQL запросы были не сильно замароченные ???

А где у Вас замороченный запрос?  smile  

Автор: Akella 24.7.2006, 09:38
ты хочешь чтобы за тебя базу спроектировали?  smile , а не слишком ли?
а если вопрос именно в SQL-запросах и их "облегчении", то я в MySQL не соображаю 

Автор: webx 24.7.2006, 10:34
Ну мне же надо как-то проверить правильность того, что я зделал.... 
Помогите плиз

За мной не заржавеет  smile  

Автор: Ignat 24.7.2006, 11:23
Цитата(webx @  24.7.2006,  11:34 Найти цитируемый пост)
Помогите плиз


Цитата(webx @  24.7.2006,  11:34 Найти цитируемый пост)
За мной не заржавеет



Если такой подход, то тема будет перемещена в раздел "Работа".

В противном случае, пожалуйста, скажите какие именно места у вас вызывают сомнения и почему. 

Автор: webx 25.7.2006, 14:45
У меня основная заморочка со связями ниже следующих таблиц!!!

1) City - Таблица Городов;
2) Aeroports - Таблица аэропортов;
3) Routes - таблица связей (С ее помащью я попытался связать все трансферы и местные авиоперелеты)
4) Transport - Тип транспорта;
5) Transport_Prices - Данные по транспорту;
6) Service_types - Виды транспортных услуг (группавой трансфер, индивидуальный, ВИП)
7) Aviokassi - Таблица авиокасс на местрые перелеты (Внутри страны)

Как можно переделать связи, чтобы SQL запросом я мог получить данные:  когда, каким транспортом и людей из какого отеля надо перевезти в другой отель или отвезти в аэропорт, чтобы они полетели в другой город...  ???? 

Автор: Ignat 25.7.2006, 15:24
webx, боюсь, что вы пытаетесь решить задачу выбора оптимального маршрута не совсем оптимальными средствами  smile  

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)