Как настроить отношения для этих таблиц в MySQL? - PullRequest
0 голосов
/ 18 марта 2012

1 курс имеет не менее 1 лекции

1 Лекция может содержать 0 или более учебников

1 Лекция может иметь 0 или более лабораторных работ

1 В учебнике может быть 0 или более лабораторных работ

Вот так настроены мои таблицы: This is how my tables are setup for the moment

Я столкнулся с 2 различными ситуациями для курсов:

1 - для данной лекции у вас есть 0 учебных пособий, но 2 лабораторных работы (вы выбираете только 1 лабораторную работу) -> 1 лабораторная работа + 1 лабораторная работа 2 - для данной лекции у вас есть 2 учебника и 2 лабораторные работы, связанные с каждым учебником -> так 1 лек + 1 учеба + 2 лабораторных занятия

Моя структура потерпит неудачу в ситуации # 1 (поскольку 0 TUT будет тормозить связь между LEC и LAB)


Альтернативная структура (как предлагает octern):

КУРС - LEC

LEC - TUT

LEC - LAB

Проблема в следующем: как определить, должен ли студент сдавать 1 или 2 лабораторных задания?

1 Ответ

0 голосов
/ 18 марта 2012

Если бы описанные вами правила были абсолютно точными, то предложенные вами отношения были бы правильными. «1 учебник может иметь 0 или более лабораторных работ» означает, что каждая лаборатория связана (хотя бы?) С одним учебным пособием. Но когда вы говорите: «Это не получится, если у лекции нет учебника, а есть только лаборатория», вы указываете, что правила не точно моделируют ситуацию. Вы говорите, что лаборатории связаны с лекциями , а не с учебниками. Таким образом, внешний ключ на TUT и LAB должен быть lec_id.

...