Лидеры рейтинга

ID: 226425

Konstantin Shvetski

Мастер-Эксперт

943

Россия, Северодвинск


ID: 259041

Алексеев Владимир Николаевич

Мастер-Эксперт

595

Россия, пос. Теплоозёрск, ЕАО


ID: 401284

Михаил Александров

Академик

351

Россия, Санкт-Петербург


ID: 137394

Megaloman

Мастер-Эксперт

307

Беларусь, Гомель


ID: 400669

epimkin

Профессионал

291


ID: 400484

solowey

Профессор

95


ID: 401888

puporev

Профессор

52

Россия, Пермский край


8.1.6

02.01.2021

JS: 2.2.2
CSS: 4.2.0
jQuery: 3.5.1


 

Установка и настройка серверов баз данных, таблицы и запросы.

Администратор раздела: Коцюрбенко Алексей Владимирович (Старший модератор)


Коцюрбенко Алексей Владимирович
Статус: Старший модератор
Рейтинг: 2128
solowey
Статус: Профессор
Рейтинг: 95
Alexander Babich
Статус: Профессор
Рейтинг: 0
 

Перейти к консультации №:
 

Консультация онлайн # 192533
Раздел: • Базы данных
Автор вопроса: Степанов Иван /REDDS (4-й класс)
Дата: 06.02.2018, 14:08
Поступило ответов: 1

Здравствуйте! Прошу помощи в следующем вопросе:
Необходимо сконструировать таблицы БД с связями (приму в любом виде sql , acsses и т.д)
Исходные данные: В аэропорту хранятся сведения об авиарейсах и пассажирах. Авиарейс характеризуется шифром, пунктом отправления, пунктом прибытия, датой отправления, датой прибытия, временем отправления, временем в пути, типом самолета. Пассажир характеризуется номером билета, номером паспорта, номером места, весом багажа, фио. Пассажир может иметь льготы, тогда стоимость билета изменяется.
smile


Состояние: Консультация закрыта

Ответ # 276129 от solowey (Профессор)

Здравствуйте, Степанов Иван /REDDS!
В самом простом варианте можно сделать 2 таблицы: авиарейсы и пассажиры. В более продвинутом варианте следует разбить более детально: аэропорты, время полета, самолеты, багаж, авиарейсы, билеты, пассажиры, люди и т.п.
В простом варианте:
1. Авиарейсы
Шифр – строка
Пункт отправления – строка
Пункт прибытия – строка
Датой отправления – дата
Датой прибытия – дата
Временем отправления – время
Временем в пути – число
Типом самолета – строка
2. Пассажиры
номером билета – число
номером паспорта – строка
номером места – строка или число
весом багажа – число
фио – строка

CREATE TABLE название_таблицы, (название_столбца1 тип данных [DEFAULT выражение] [ограничение_столбца], название_столбца2 тип данных [DEFAULT выражение] [ограничение_столбца],[ограничения_таблицы]).
1. Авиарейсы

CREATE TABLE flights (code Char, pointOfDeparture Char, pointOfArrival Char, dateOfDeparture Date, dateOfArrival Date, timeOfDeparture Date, timeOnWay – Number, typePlane - Char)

2. Пассажиры
CREATE TABLE passengers (numberTiket  Number, numberPassport  Char, numberPlace Char, baggageWeight Number, typePlane Char)


Вот примерный вариант создания таблиц.


Консультировал: solowey (Профессор)
Дата отправки: 06.02.2018, 17:29

5
нет комментария
-----
Дата оценки: 09.02.2018, 21:51

Рейтинг ответа:

+1

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Мини-форум консультации № 192533

Степанов Иван /REDDS

4-й класс

ID: 400537

1

= общий = |  06.02.2018, 20:12 |  цитировать |  профиль |  личное сообщение
solowey:

Структура подойдет,но надо еще связать таблицы Авиарейсы и Пассажиры общим полем или через одну промежуточную таблицу. Как лучше это сделать?

=====
Твое внимание станет мой энергией smile

solowey

Профессор

ID: 400484

2

= общий = |  07.02.2018, 09:44 |  цитировать |  профиль |  личное сообщение

Т.к. пересекающихся полей нет, нужно создавать еще табличку. На пример, билеты. Она свяжет 2 первые.
Новая таблица может выглядеть так:

CREATE TABLE tikets
(id Number AUTO_INCREMENT,
numberTiket Number,
pointOfDeparture Char,
pointOfArrival Char,
dateOfDeparture Date)

Еще предлагаю тогда модернизировать ранее описанные, добавив в них уникальный счетчик - id.
CREATE TABLE flights
(id Number AUTO_INCREMENT,
code Char,
pointOfDeparture Char FOREIGN KEY REFERENCES tikets(pointOfDeparture),
pointOfArrival Char FOREIGN KEY REFERENCES tikets(pointOfArrival),
dateOfDeparture Date FOREIGN KEY REFERENCES tikets(dateOfDeparture),
dateOfArrival Date,
timeOfDeparture Date,
timeOnWay – Number,
typePlane - Char)

CREATE TABLE passengers
(id Number AUTO_INCREMENT,
numberTiket Number FOREIGN KEY REFERENCES tikets(numberTiket),
numberPassport Char,
numberPlace Char,
baggageWeight Number,
typePlane Char)

Как то так...

Зенченко Константин Николаевич

Старший модератор

ID: 31795

3

= общий = |  07.02.2018, 14:13 |  цитировать |  профиль |  личное сообщение
Степанов Иван /REDDS:

Плохо, что Вы не умеете пользоваться поиском.
smile

Поиск даст кучу ссылок с описанием структур БД, а одна из них предлагает скачать базу (в архиве с паролем).
smile

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

Зенченко Константин Николаевич

Старший модератор

ID: 31795

4

= общий = |  07.02.2018, 14:40 |  цитировать |  профиль |  личное сообщение
Степанов Иван /REDDS:

Я думал о такой модели:



В сети есть и такая, которую можно скачать

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

Степанов Иван /REDDS

4-й класс

ID: 400537

5

= общий = |  07.02.2018, 16:25 |  цитировать |  профиль |  личное сообщение
Зенченко Константин Николаевич:

Цитата: Зенченко Константин Николаевич
Плохо, что Вы не умеете пользоваться поиском.
smile
Честно говоря не додумался что бд от курсовой будут лежать в открытом доступе(с проектировкой БД у меня не очень)

1-я модель мне понравилась только льготы добавить , 2-я тоже нравится.

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

=====
Твое внимание станет мой энергией smile

Зенченко Константин Николаевич

Старший модератор

ID: 31795

6

= общий = |  08.02.2018, 17:09 |  цитировать |  профиль |  личное сообщение
Степанов Иван /REDDS:

smile
В вопросе было только:

Цитата: Степанов Иван /REDDS
Необходимо сконструировать таблицы БД с связями

Без этого сам вопрос не имеет смысла, с точки зрения БД.
Цитата: Степанов Иван /REDDS
1. Сформировать и вывести на печать отчет, включающий все характеристики авиарейсов, вылетевших из указанного пункта отправления в указанный пункт прибытия.
2. Вывести сведения обо всех пассажирах, летящих данным рейсом, вес багажа которых равен нулю.
3. Вывести всех льготников, летящих данным авиарейсом.
4. Вывести сводную информацию обо всех полетах самолетов данного типа в указанный период времени.


=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.