путаница с отношениями объектов - PullRequest
1 голос
/ 13 февраля 2012

У меня есть одна ситуация, приведенная ниже:

Каждый студент может быть зачислен в более чем один класс.Каждый класс может вместить более одного ученика.

, какой из следующих возможных ответов:

(1) 1 to N
(2) M to N to 1
(3) M to N
(4) Anything else

, если ответ (4), чем какой другой ответ возможен ......

любые комментарии заметны,

спасибо заранее, Милан Мендпара

Ответы [ 3 ]

1 голос
/ 13 февраля 2012

Это M: N .

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

  • Каждый class может иметь много student сущностей.Таким образом, у нас есть 1:M.
  • Каждый student может быть зарегистрирован в много class.Так что это тоже 1:M.

В нормализованной базе данных вы бы определили Class и Student (минимально) так:

Class: Id, Name

Student: Id, FirstName, LastName

Если вы добавляете внешний ключ на Class к Student, вы разрешаете каждому Class иметь только один Student.Если вы положили внешний ключ от Student до Class, вы позволяете каждому Student принимать по одному Class за раз.Ответ состоит в том, чтобы использовать таблицу ассоциации как , это отношение M: N :

StudentClass: StudentId, ClassId

Надеюсь, что это поможет.

0 голосов
/ 13 февраля 2012

Ответ

3 М до N

Вам необходимо определить таблицу с полями class_id и student_id для хранения отношений.

Проверьте эту статью о database normalization

http://en.wikipedia.org/wiki/Database_normalization

0 голосов
/ 13 февраля 2012

Это номер 3.

Регистрация нескольких студентов (M) в нескольких классах (N).

...