Таблица соединений Sql в Java

Я хочу использовать отношения «многие ко многим». как сделать студент с предметами и предмет со студентами в sql.

студенческий стол есть

student_IDno | full name | address |

и предметная таблица есть

subject_IDno| title | description | time |

я хочу присвоить номер студенческого идентификатора предметной таблице, чтобы в предметной таблице могли быть студенты

Могу ли я сделать то же самое в таблице тем? присвоить номер идентификатора предмета таблице учеников, чтобы он тоже мог иметь предметы?

и если я ищу кодовый номер предмета, появятся учащиеся, и наоборот, если я ищу студенческий код, предметы также появятся.

как лучше всего это сделать? Надеюсь, я хорошо объяснил свою проблему, спасибо, ребята.


person unknown    schedule 02.11.2015    source источник
comment
Просто добавьте еще одну таблицу — studentsubject, например, с studentid и subjectid в качестве составного первичного ключа. Затем вы можете запросить в любом случае и присоединиться соответственно.   -  person sgeddes    schedule 02.11.2015
comment
как будут иметь номер student_id и subject_id? где взять их идентификационные номера?   -  person unknown    schedule 02.11.2015
comment
Значения student_id и subject_id в новой таблице будут взяты из таблицы студентов (student_IDno) и таблицы предметов (subject_IDno), которые вы хотите связать.   -  person Mark Sholund    schedule 02.11.2015
comment
Это может быть интересно: megocode3.wordpress.com /2008/01/04/   -  person Mark Sholund    schedule 02.11.2015
comment
Хорошо, теперь я понял. когда это произойдет? после того, как я добавил student_id к предмету и subject_id к студенту? я прав ? это будет время, когда я добавил значения student_id и subject_id в соединительную таблицу student_subject к составным первичным ключам student_id и subject_id, я прав?   -  person unknown    schedule 02.11.2015
comment
Некоторым людям сообщения легче читать, когда они используют правильную заглавную букву, например, я, а не я. Итак, если вы хотите, чтобы ваш вопрос прочитало больше людей, подумайте о том, чтобы отредактировать его, чтобы исправить такие недостатки.   -  person    schedule 02.11.2015


Ответы (1)


Вы вводите ТРЕТЬЮ таблицу, чтобы установить связь между таблицами STUDENT и SUBJECT. Назовем таблицу CLASS. В нем будут следующие столбцы:

идентификатор класса | студенческий_IDнет | subject_IDнет

Допустим, ученик поступил в школу. Запись будет ВСТАВЛЕНА в STUDENT с уникальным идентификатором student_IDno. (допустим 1)

Список тем, конечно же, находится в таблице SUBJECT.

Теперь, если студент хочет записаться на предмет, он должен будет присоединиться к КЛАССУ. Теперь вы ВСТАВЛЯЕТЕ его в класс со student_IDno = 1 и subject_IDno = любым предметам, на которые он записывается.

Ваша таблица CLASS будет выглядеть так:

classID | student_IDno | subject_IDno
   1    |      1       |     1
   2    |      1       |     2
   3    |      1       |     3

Вы видите, как он показывает, сколько КЛАССов у 1-го ученика?

Как вы делаете ПОИСК? Допустим, вы хотите найти студентов, изучающих ТЕМУ 1.

SELECT student.* FROM CLASS as class
JOIN SUBJECT as subject ON class.subject_IDno = subject.subject_IDno
JOIN STUDENT as student ON class.student_IDno = student.student_IDno 
WHERE subject.subject_IDno = 1

Остальное я оставляю вам. Я думаю, вы поняли идею.

подробнее о присоединении к SQL здесь

person jmcg    schedule 02.11.2015