База данных - концептуальная модель дизайна

У нас есть задача смоделировать следующую ситуацию, используя концептуальную модель ERD:
У нас есть учителя и ученики. Студенты входят в группы. Учителя могут преподавать разные уроки / курсы, в то время как курс может преподавать другой учитель. У каждой группы свое расписание. А расписание определяет комнату, курс и преподавателя, который проводит урок.

Инструментом, используемым для создания концептуальной модели ERD, является Oracle Data Modeler (хотя, на мой взгляд, это не имеет большого значения).

Описание задачи немного расплывчато, поэтому я добавил еще несколько определений:
Расписание состоит из дней: пн - пт (возможно, до воскресенья) и говорит, в какой день и в какое время проводится урок и кто дает уроки.
Другое дело, что учитель может иметь "опыт" в преподавании разных уроков, но это не обязательно означает, что он будет давать уроки для какого-то курса. Это также озадачивает меня, как отразить это в модели, а не дублировать сущности и т. Д.

Поэтому я думал добавить дни / часы к расписанию, но тогда день будет атрибутом с несколькими значениями, что недопустимо в реляционной модели, как я понимаю.

Я включаю текущее состояние моей концептуальной модели.

Я создал часть концептуальной модели, однако застрял в дизайне и не уверен, как продолжать с логической точки зрения. Модель прикреплена в виде картинки (не знаю, как экспортировать модель из ODM в некоторый "исходный код").

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

1 ответ

Когда я прочитал ваш первый абзац, я придумал что-то очень близкое к вашему, за исключением раздела, который обрабатывает расписание. ИМХО вам не нужны таблицы расписания и понедельника. Свяжите группу напрямую с TimeFrame.

Я думаю, что вы путаете таблицы со строками для Timetable / TimeFrame. Нет необходимости в таблице с именем TimeFrame_8:00-8:45. Должен быть только график (между комнатой и учителем на диаграмме), который содержит:

  • Дата и время начала
  • Дата окончания
  • Номер комнаты
  • ID учителя
  • ID урока
  • ID группы

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

Отказ от ответственности: мой ответ с точки зрения разработчика / исполнителя, а не академического эксперта по базе данных.

Другие вопросы по тегам