Требуется помощь в разработке базы данных - PullRequest
0 голосов
/ 19 января 2011

Мне нужна помощь в построении простой структуры базы данных.Вид застрял.

Вот что я пытаюсь.

Класс означает отделение + семестр.Например, электроники SemI, электрики Eng II Sem ... и т.д ..

Студент в классе;Класс имеет определенную группу предметов;Группа состоит из нескольких субъектов.

Класс и субъекты, 2 объекта зависят от одного и того же объекта SubjectGroup.Так разве это не троичные отношения?

Я сделал это изображение, чтобы прояснить картину.[P = первичный ключ;F = внешний ключ;Стрелки не означают что-то типа «Один ко многим / многие ко многим» и т. Д., Они просто показывают, на что ссылаются.]GroupId два раза.

Как мне изменить эту структуру?

- Спасибо

Ответы [ 2 ]

1 голос
/ 19 января 2011

Сущности

  • Студент.
  • Класс.
  • Предмет.

Отношения

  • Студент в класс.Один ко многим.Один класс относится ко многим студентам.
  • В зависимости от класса.Один ко многим.Один класс относится ко многим предметам.

Таблицы

Student

Столбцы:

  • studentId - первичный ключ таблицы ученика.
  • материал о sutdent (некоторое количество столбцов).
  • classId - внешний ключ в таблицу классов.

Тема

Столбцы:

  • subjectId - первичный ключ таблицы тем.
  • материал о предмете (некоторое количество столбцов).
  • classId - внешний ключ в таблице классов.

Class

  • classId - первичный ключ таблицы классов.
  • материал о классе.ничего о студенте.ничего о предмете.нет внешнего ключа для студента.нет внешнего ключа к предмету.

Запросы

Учащиеся в классе

select
    s.studentName
from
    class c
    inner join student s on s.classId = c.classId
where
    c.classId = 'desired class id'

Предметы Учащийся изучает

select
    sub.subjectName
from
    student stu
    inner join subject sub on sub.classId = stu.classId
where
    stu.studentId = 'desired student id'
0 голосов
/ 19 января 2011

Я думаю, вам нужно представить таблицу classSubject. Это точный пример строк?

student
beth
john
mark

class
beths_and_johns_class bethssubject, johnssubject
marks_class markssubject

subject
bethssubject
johnssubject
markssubject
...