2016-04-02 3 views
0

В настоящее время я работаю над системой студентов, в моем проекте мне нужно, чтобы у каждого ученика было много зарегистрированных в нем курсов ... Каков наилучший способ создания базы данных? В настоящее время я создал таблицу с именем students, которая содержит информацию о студентах, , а таблица с названиями курсов содержит названия курсов. Я знаю, что способ сделать это - сделать внешний ключ от ссылок на таблицы учеников на таблицу курсов, и я пробовал это, но я смущен, как это точно. благодарит заранее.Отношение ко всем отношениям базы данных

+0

Это больше похоже на отношения многих-ко-многим. Студент может участвовать в нескольких курсах, но курсы также будут принимать несколько учеников. –

+0

Спасибо за ваш ответ. да, вы правы. поэтому, как определить, что каждый студент зарегистрирован на нескольких курсах, чтобы отобразить курсы, которые студент зарегистрировал в нем в своем профиле. –

ответ

0

Вам нужно будет создать таблицу, чтобы смоделировать многие-ко-многим:

Students [ id | name | etc..] 
Courses [ id | name | etc.. ] 
Students in Courses [ id | student_id | course_id ] 

Вы можете подробно об отношениях в там же (в каком году студент войти в курс, в в каком году он/она закончить, была плата за обучение оплачивается и т.д ..)

данные в этих таблицах будет выглядеть примерно так:

студентов

Id  Name 
------ -------- 
S1  John 
S2  Jane 
S3  Mike 
S4  Larry 

курсы

Id  Name 
------ -------- 
C1  Java for beginners 
C2  C# for dummies 
C3  Phyton for Noobs 

Student в курсах

Id  CourseId StudentId 
----- ------ -------- 
01  C1  S1 
02  C2  S1 
..... 
99  C3  S3 

Вы можете запрашивать данные с помощью внутреннего соединения на столах (псевдо-код) :

Select S.Id, S.Name, C.Id, C.Name 
From Students S 
Inner Join 'Students in Courses' SC ON S.Id = SC.StudentId 
Inner Join Courses C ON SC.CourseId = C.Id 
+0

Спасибо за ваш ответ , чтобы он дал мне понять. позволяет предположить, что есть курс под названием «Java», и в нем записано 3 ученика. поэтому таблица students_in_courses будет выглядеть так: ID | 1st_student_ID | JAVA_ID ID | 2nd_student_ID | JAVA_ID ID | 3rd_student_ID | JAVA_ID –

Смежные вопросы