Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.11.2022, 18:12   #1
Konichiwa
Новичок
Джуниор
 
Регистрация: 17.11.2022
Сообщений: 2
По умолчанию Как сделать правильные связи в бд

Фирме принадлежит небольшая флотилия рыболовных катеров. Каждый катер имеет «паспорт», куда занесены его название, тип (сейнер, траулер, баркас, шхуна, рефрижератор и т.д.), водоизмещение и дата постройки. Фирма регистрирует каждый выход на лов, записывая название катера, имена и адреса членов команды с указанием их должностей (капитан, боцман, кок, матрос и т.д.), даты выхода и возвращения, а также вес пойманной рыбы отдельно по сортам (треска, камбала, палтус, морской окунь и т.д.). За время одного рейса катер может посетить несколько рыболовных мест (банок). Фиксируется дата прихода на каждую банку и дата отплытия, качество выловленной рыбы (отличное, хорошее, плохое). Улов сортируется и взвешивается в порту.
Необходимо построить схему реляционной базы данных.

Вот таблицы:
Катер (№катера, название, тип, водоизмещение, датаПостройки).
Моряк (№моряка, ФамилияИмяОтчество, датаРождения, специальность).
Рыба (№сорта, название).
Банка (№банки, название, широта, долгота).
Выход (№выхода, №катера, датаВыхода, датаВозврата).
Команда (№выхода, №моряка, должность).
Посещение (№посещения, №банки, №выхода, датаЗахода, датаУхода).
Улов_на_банке (№посещения, №сорта, качество).
Улов (№выхода, №сорта, вес).
Konichiwa вне форума Ответить с цитированием
Старый 22.11.2022, 18:29   #2
Valick
Форумчанин
 
Регистрация: 27.04.2022
Сообщений: 493
По умолчанию

Цитата:
Сообщение от Konichiwa Посмотреть сообщение
Как сделать правильные связи в бд
Необходимо изучить правила нормализации БД. Затем определить сущности и установить связи между ними.
Забегая вперёд я вам скажу, что последние две таблицы - это будет одна таблица.
Valick вне форума Ответить с цитированием
Старый 22.11.2022, 18:52   #3
Valick
Форумчанин
 
Регистрация: 27.04.2022
Сообщений: 493
По умолчанию

Главное правило имена полей и таблиц на английском языке.
Давайте начнём с таблицы типа катера. И определимся, водоизмещение это относится к типу катера или у каждого катера своё водоизмещение (зависящее от возраста катера, жирности капитана и тд), полагаю всё таки к типу.
Сущность: Тип Катера (boat_type)
Поля: id, name, displacement, speed

Таблица катер, почти всё нормально, но есть 1 вопрос. Как формируется номер катера и как он выглядит? Мы можем гарантировать, что нет двух катеров с одинаковым номером? Если гарантировать не можем, то нужен отдельный идентификатор строки, если можем, то идентификатором может быть номер катера (то что нарисовано краской на носу)
Сущность: Катер (boat)
Поля: id, number, name, build_date

Определяем отношение между boat_type и boat. Один тип катера может принадлежать нескольким катерам. Значит отношение "one-to-many" (один-ко-многим). Следовательно таблица связи не нужна. Достаточно в таблицу boat (-многим) поместить идентификатор типа катера boat_type_id. По этому полю будет осуществляться связь между этими двумя таблицами.
Valick вне форума Ответить с цитированием
Старый 22.11.2022, 18:54   #4
Valick
Форумчанин
 
Регистрация: 27.04.2022
Сообщений: 493
По умолчанию

Konichiwa, вы что нибуть слышали про миграции? https://laravel.su/docs/8.x/migrations
Очень удобная вещь, даже если вы не используете фреймворк laravel.
Рекомендую использовать для создания таблиц.
Valick вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать правильные связи в базе данных в access randymarsh13 Помощь студентам 2 22.11.2022 19:08
Как сделать выбор по двойной связи, чтобы в списке не отражались коды AntohaInvalid228 Помощь студентам 2 28.10.2016 10:28
Какие налоги правильные и хорошие, а какие плохие и не правильные Smitt&Wesson Свободное общение 15 23.06.2016 09:33
как на сайте сделать простую форму обратной связи Megaf PHP 3 16.02.2009 21:03