Как я могу улучшить отношения в моей базе данных? - PullRequest
0 голосов
/ 28 января 2019

Я очень новичок в разработке профессиональной системы баз данных и создании системы управления школой в Ларавеле.У меня проблемы с настройкой базы данных.Как записать студента.Чтобы узнать проблему, вам необходимо прочитать требование один раз.

Каждый Класс может иметь минимум 1 или максимум Раздел .В каждом разделе имеется множество списков курсов и студентов , в которых обучаются. Каждый класс имеет учителя

База данных, о которой я думаю, это

  • Ученик (много-ко-многим, формирующим регистрацию) Класс

  • Класс (много-к-одному)-много формирования Class_Section) Секция

  • Секция (формирование множества секций_Курсы)

или

  • Ученик (входящий в состав многих) Классная комната

  • Классная комната {class_id, section_id (FK)} (один ко многим) Раздел

  • Section {section_id, course_id} (один-ко-многим) Курс

Мне нужно то, что при зачислении ученика я хочу зарегистрировать его вClassRoom и в любом разделе этого класса.Студент может видеть все курсы в этом разделе.

Это дает понять, что при регистрации также должен быть указан идентификатор раздела.Но если я сделаю связь раздела с регистрацией.Он покажет все разделы.

Пожалуйста, предложите мне возможный способ создания этой базы данных.Я застрял здесь и не могу найти лучшего варианта для этого.

1 Ответ

0 голосов
/ 28 января 2019

В основном существует три типа отношений.Они: 1. один к одному 2. один ко многим 3. много ко многим

Подумайте о каждом отношении обоими способами.Например, вы сказали, что «В каждом разделе есть много списков курсов».Теперь подумайте наоборот.Можно ли предложить курс в более чем одном разделе?Если да, то это должно быть отношение многих ко многим.В противном случае это должно быть один ко многим.

Точно так же думайте о классных и секционных отношениях.Вы сказали: «В каждом классе может быть минимум 1 или максимум много разделов».Теперь подумайте об этом наоборот.Может ли секция иметь более одного класса?Если в нем может быть более одной классной комнаты, вам нужно много для многих.В противном случае один ко многим будет в порядке.

Суть в том, что если это «один ко многим» с обеих сторон, то вам нужно отношение «многие ко многим».

Об отображении только курсов для этого раздела;не беспокойся об этомСначала разработайте базу данных.Laravel очень хорошо справляется с отношениями.На самом деле, красноречивые отношения - очень мощный инструмент.Вы также можете использовать полиморфные отношения и промежуточные отношения.Попробуйте прочитать об этом из документации .

...