|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.11.2022, 18:12 | #1 |
Новичок
Джуниор
Регистрация: 17.11.2022
Сообщений: 2
|
Как сделать правильные связи в бд
Фирме принадлежит небольшая флотилия рыболовных катеров. Каждый катер имеет «паспорт», куда занесены его название, тип (сейнер, траулер, баркас, шхуна, рефрижератор и т.д.), водоизмещение и дата постройки. Фирма регистрирует каждый выход на лов, записывая название катера, имена и адреса членов команды с указанием их должностей (капитан, боцман, кок, матрос и т.д.), даты выхода и возвращения, а также вес пойманной рыбы отдельно по сортам (треска, камбала, палтус, морской окунь и т.д.). За время одного рейса катер может посетить несколько рыболовных мест (банок). Фиксируется дата прихода на каждую банку и дата отплытия, качество выловленной рыбы (отличное, хорошее, плохое). Улов сортируется и взвешивается в порту.
Необходимо построить схему реляционной базы данных. Вот таблицы: Катер (№катера, название, тип, водоизмещение, датаПостройки). Моряк (№моряка, ФамилияИмяОтчество, датаРождения, специальность). Рыба (№сорта, название). Банка (№банки, название, широта, долгота). Выход (№выхода, №катера, датаВыхода, датаВозврата). Команда (№выхода, №моряка, должность). Посещение (№посещения, №банки, №выхода, датаЗахода, датаУхода). Улов_на_банке (№посещения, №сорта, качество). Улов (№выхода, №сорта, вес). |
22.11.2022, 18:29 | #2 |
Форумчанин
Регистрация: 27.04.2022
Сообщений: 494
|
Необходимо изучить правила нормализации БД. Затем определить сущности и установить связи между ними.
Забегая вперёд я вам скажу, что последние две таблицы - это будет одна таблица.
стимулятор https://yoomoney.ru/to/41001303250491
|
22.11.2022, 18:52 | #3 |
Форумчанин
Регистрация: 27.04.2022
Сообщений: 494
|
Главное правило имена полей и таблиц на английском языке.
Давайте начнём с таблицы типа катера. И определимся, водоизмещение это относится к типу катера или у каждого катера своё водоизмещение (зависящее от возраста катера, жирности капитана и тд), полагаю всё таки к типу. Сущность: Тип Катера (boat_type) Поля: id, name, displacement, speed Таблица катер, почти всё нормально, но есть 1 вопрос. Как формируется номер катера и как он выглядит? Мы можем гарантировать, что нет двух катеров с одинаковым номером? Если гарантировать не можем, то нужен отдельный идентификатор строки, если можем, то идентификатором может быть номер катера (то что нарисовано краской на носу) Сущность: Катер (boat) Поля: id, number, name, build_date Определяем отношение между boat_type и boat. Один тип катера может принадлежать нескольким катерам. Значит отношение "one-to-many" (один-ко-многим). Следовательно таблица связи не нужна. Достаточно в таблицу boat (-многим) поместить идентификатор типа катера boat_type_id. По этому полю будет осуществляться связь между этими двумя таблицами.
стимулятор https://yoomoney.ru/to/41001303250491
|
22.11.2022, 18:54 | #4 |
Форумчанин
Регистрация: 27.04.2022
Сообщений: 494
|
Konichiwa, вы что нибуть слышали про миграции? https://laravel.su/docs/8.x/migrations
Очень удобная вещь, даже если вы не используете фреймворк laravel. Рекомендую использовать для создания таблиц.
стимулятор https://yoomoney.ru/to/41001303250491
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как сделать правильные связи в базе данных в 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 |