MySQL несколько ПК - PullRequest
       3

MySQL несколько ПК

0 голосов
/ 06 мая 2018

Я столкнулся с проблемой при разработке базы данных MySQL. У меня есть пять таблиц:

  1. ПРОФЕССОР
  2. GROUP
  3. КЛАСС
  4. SESSION
  5. COURSE_SESSION

Хотя столбцы COURSE_SESSION являются первичными ключами других таблиц:

|PROFESSOR_ID|GROUP_ID|CLASSROOM_ID|SESSION_ID |
| 1          |1       |3           |1          |
| 2          |2       |4           |1          |

Зная, что в таблице SESSION есть столбцы startTime и endTime.

Я хочу убедиться, что когда я вставлю дважды:

  1. Тот же PROFESSOR_ID с тем же SESSION_ID
  2. Или тот же GROUP_ID с тем же SESSION_ID
  3. Или тот же CLASSROOM_ID с тем же SESSION_ID

Действие ограничено.

Возможно ли это с использованием ограничений первичного ключа? или этот дизайн не подходит для моей цели?

1 Ответ

0 голосов
/ 06 мая 2018

Вы можете использовать уникальные ограничения (или уникальные индексы, которые делают в основном то же самое):

alter table course_session add constraint unq_course_session_ps
    unique (professor_id, session_id);

alter table course_session add constraint unq_course_session_gs
    unique (group_id, session_id);

alter table course_session add constraint unq_course_session_cs
    unique (classroom_id, session_id);

Вы также можете поместить уникальное ограничение в само определение таблицы ....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...