Как я могу улучшить отношения в моей базе данных?
Я очень новичок в разработке профессиональной системы баз данных и создании системы управления школой в Laravel. У меня проблемы с настройкой базы данных. Как записать студента. Чтобы узнать проблему, вы должны прочитать требование один раз.
В каждом классе может быть минимум 1 или максимум несколько разделов. В каждом разделе есть много списков курсов и студентов, зарегистрированных в. В каждом классе есть учитель
База данных, я думаю об этом
Студенческая (много-много образовательных Регистрация) Классная комната
Классная комната (многие ко многим формируют Class_Section) Раздел
Курсы Секции (многие ко многим, формирующие Section_Courses)
или же
Студенческая (много-много образовательных Регистрация) Классная комната
Классная комната {class_id, section_id(FK)} (один-ко-многим) Раздел
Раздел {section_id, course_id} (один ко многим)
Что мне нужно, так это то, что при зачислении ученика я хочу зарегистрировать его в ClassRoom и в любом разделе этого класса. Студент может видеть все курсы в этом разделе.
Это дает понять, что регистрация должна иметь также идентификатор раздела. Но если я сделаю связь раздела с регистрацией. Он покажет все разделы.
Пожалуйста, предложите мне возможный способ создания этой базы данных. Я застрял здесь и не могу найти лучший вариант для этого.
1 ответ
В основном есть три типа отношений. Они: 1. один к одному 2. один ко многим 3. много ко многим
Подумайте о каждом отношении с обеих сторон. Например, вы сказали, что "В каждом разделе есть много списков курсов". Теперь подумайте наоборот. Можно ли предложить курс в более чем одном разделе? Если да, то это должно быть отношение многих ко многим. В противном случае это должно быть один ко многим.
Точно так же думайте о классных и секционных отношениях. Вы сказали: "В каждом классе может быть минимум 1 или максимум много разделов". Теперь подумайте об этом наоборот. Может ли секция иметь более одного класса? Если в нем может быть более одной классной комнаты, вам нужно много для многих. В противном случае один ко многим будет в порядке.
Суть в том, что если это "один ко многим" с обеих сторон, то вам нужно отношение многие ко многим.
О показе только курсов для этого раздела; не беспокойся об этом Сначала разработайте базу данных. Laravel очень хорошо справляется с отношениями. На самом деле, красноречивые отношения - очень мощный инструмент. Вы также можете использовать полиморфные отношения и промежуточные отношения. Попробуйте прочитать об этом из документации.