powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Вопрос, по запросу и проектированию БД, автопарк
19 сообщений из 19, страница 1 из 1
Вопрос, по запросу и проектированию БД, автопарк
    #39192843
basilx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую, Друзья!

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

Есть таблицы:
- driver (id_driver, name, sex, phone)
- auto (id_auto, model, color, year (год выпуска авто), fk_park, fk_driver)
- park /Автопарк (id_park, title, address, fk_auto)


Отношения в таблицах, как я понимаю:
Auto : Park = 1:1
Driver : Park = 1:N
Driver : Auto = 1:N

Я вижу решение следующим образом:
SELECT d.name, d.phone, a.model, a.year FROM driver d, auto a, park p
WHERE d.id_driver = a.fk_driver AND p.fk_auto = a.id_auto AND a.year> 2014 ORDER BY d.name;

Верно ли я мыслю касательно своей задачи.
Можно ли это сделать объединением?
Заранее благодарю за помощь.
...
Рейтинг: 0 / 0
Вопрос, по запросу и проектированию БД, автопарк
    #39192912
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отношения

Auto : Park = N:1
Driver : Park - не нужно вообще (из следующего отношения выводится)
Driver : Auto = 1:N

Если конечно нет такого, что за авто несколько водителей закреплено
...
Рейтинг: 0 / 0
Вопрос, по запросу и проектированию БД, автопарк
    #39192946
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
basilxНеобходимо отобразить все машины которые закреплены за водителем, год выпуска которых старше 2014. Верно ли я мыслю касательно своей задачи.
Задача: отобразить машины. Запрос: отображает водителей. Подумайте сами, верно ли Вы мыслите? Затем подумайте о том, что в этой задаче ни водители, ни парки Вам вообще не нужны.

basilxМожно ли это сделать объединением?
Зачем?
...
Рейтинг: 0 / 0
Вопрос, по запросу и проектированию БД, автопарк
    #39192950
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, ну и заодно я бы предложил подумать над тем, как внятно переводится на русский язык корявая формулировка "год выпуска старше 2014".
...
Рейтинг: 0 / 0
Вопрос, по запросу и проектированию БД, автопарк
    #39192952
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
basilx,

SELECT driver.name, auto.model, auto.year
FROM driver INNER JOIN (auto INNER JOIN driver_avto ON auto.id_auto = driver_avto.id_auto) ON driver.id_driver = driver_avto.id_driver
WHERE (((auto.year)>2014));
...
Рейтинг: 0 / 0
Вопрос, по запросу и проектированию БД, автопарк
    #39192958
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag, гениально. Вы не только повторили все ошибки автора, но и добавили к ним несуществующую таблицу.
...
Рейтинг: 0 / 0
Вопрос, по запросу и проектированию БД, автопарк
    #39192970
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerно и добавили к ним несуществующую таблицу.

недостающую....
...
Рейтинг: 0 / 0
Вопрос, по запросу и проектированию БД, автопарк
    #39192972
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmagнедостающую....
Вы это скажите преподавателю. Который и так дал на две таблицы больше, чем нужно для этой задачи.
...
Рейтинг: 0 / 0
Вопрос, по запросу и проектированию БД, автопарк
    #39192979
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerВы это скажите преподавателю.

не все преподы идолы, на которых нужно молиться...
...
Рейтинг: 0 / 0
Вопрос, по запросу и проектированию БД, автопарк
    #39193208
basilx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer,
Да, ещё раз перечитал условие, просто переписал с ошибками, нужно таки: "Выбрать всех водителей в заданном автопарке, к которому привязан хотя бы один автомобиль с годом выпуска позднее 2010".

В итоге нарисовал схему отношений (Не разобрался как вставить картинку, во вложении) и переписал запрос:

Код: sql
1.
2.
3.
SELECT d.fullName, d.birtdayYear, a.model, a.releaseYear, p.title FROM driver d, auto a, park p 
WHERE d.iddriver = a.fk_driver AND p. park_id = a.park_fk 
AND p.title = 'Name of the Park' AND a.releaseYear > 2010 ORDER BY a.year;



Но меня смущает фраза хотя бы один автомобиль, т.е. может быть ситуация когда за водителем не числится вообще автомобилей?
Тогде нужно добавлять ещё одно условие.

softwarer,
А можно попродробнее по поводу двух лишних таблиц. Там где отношение 1:1 можно было сделать
в одной таблице, я так думаю. А где ещё лишняя таблица?

Хочется разобраться более детально и отдельное спасибо за наводящие вопросы.
В данном случае не нужно вообще никаких объединений.
...
Рейтинг: 0 / 0
Вопрос, по запросу и проектированию БД, автопарк
    #39193211
basilx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Naf,
Спасибо, как - то сразу не понял, что отношение лишнее,
а потом как начал создавать таблицы, то всё стало на свои места.
...
Рейтинг: 0 / 0
Вопрос, по запросу и проектированию БД, автопарк
    #39193233
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
basilxДа, ещё раз перечитал условие, просто переписал с ошибками, нужно таки: "Выбрать всех водителей в заданном автопарке, к которому привязан хотя бы один автомобиль с годом выпуска позднее 2010".
OK. Но снова посмотрите на свой запрос: русским языком сказано "выбрать всех водителей". А Ваш запрос возвращает автомобили.

Кроме того, я так подозреваю, всё же имеется в виду "к которым". Потому что если "к которому", задание следует понимать как "выбрать всех водителей заданного автопарка, если к нему привязан хотя бы один автомобиль, выпущенный после 2010 года".

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

basilxА можно попродробнее по поводу двух лишних таблиц.
В том виде, в котором было написано, задача решается запросом

Код: plaintext
select a.* from auto a where a.year < 2014 and a.driver_id is not null
...
Рейтинг: 0 / 0
Вопрос, по запросу и проектированию БД, автопарк
    #39193242
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
basilx,

только картинку свою преподу не показывайте, из неё вытекает что в каждом парке может быть только одна машина, ну или я уже ничего не понимаю....
...
Рейтинг: 0 / 0
Вопрос, по запросу и проектированию БД, автопарк
    #39193377
basilx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vmag,

А почему одна машина?
Просто отношение 1 : 1, т.е. одна машина числится за одним парком, всё пучком.
А в автопарке их может быть много, но одна машина всегда закреплена только за одним автопарком, не вижу противоречий.

Почему думаете это некорректно?
Я создал таблицы и уже прогнал запрос, всё работает красиво.
...
Рейтинг: 0 / 0
Вопрос, по запросу и проектированию БД, автопарк
    #39193410
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
basilxvmag,

А почему одна машина?
Просто отношение 1 : 1, т.е. одна машина числится за одним парком, всё пучком.
А в автопарке их может быть много, но одна машина всегда закреплена только за одним автопарком, не вижу противоречий.

Это называется "1:N" - один автопарк, N машин.
...
Рейтинг: 0 / 0
Вопрос, по запросу и проектированию БД, автопарк
    #39193428
basilx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кот Матроскин,

Спасибо за исправление, как - то я невнимателен был, когда создавал даграмму.
А так да, понятно что отношение 1 ко многим.

Т.е. на диаграмме исправлю 1:1 на N:1.

Спасибо ещё раз!
...
Рейтинг: 0 / 0
Вопрос, по запросу и проектированию БД, автопарк
    #39193705
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
basilxСпасибо за исправление, как - то я невнимателен был, когда создавал даграмму.

ну и вникайте во все тонкости ответов вам :

NafЕсли конечно нет такого, что за авто несколько водителей закреплено

То есть, если по понедельникам на авто X ездит водитель А , а по вторникам водитель В , а по средам водитель С ,
то в таблице auto один и тот же автомобиль Х будет присутствовать не один, а три раза (согласно вашей схеме)
...
Рейтинг: 0 / 0
Вопрос, по запросу и проектированию БД, автопарк
    #39194009
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag,

Это было предположение, тогда требуется еще таблица, а может и не одна (если графики есть)
...
Рейтинг: 0 / 0
Вопрос, по запросу и проектированию БД, автопарк
    #39194020
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NafЭто было предположение,

Это не предположение, это правильный подход к проектированию...
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Вопрос, по запросу и проектированию БД, автопарк
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]