Собесов

Связь «Ментор и стажёры» — какая кардинальность?

SQLКардинальность связейЛёгкаяJunior

Условие

«Ментор и стажёры» — это пример из жизни связи:

  • Многие ко многим
  • Один к одному
  • Один ко многим
  • Многие к одному

Решение

Правильный ответ — Один ко многим (1:N).

Логика

  • У одного ментора может быть много стажёров (3–10 одновременно).
  • У одного стажёра обычно один ментор в моменте.

Это классический паттерн 1:N:

  • «1» сторона — ментор (родитель).
  • «N» сторона — стажёр (дети).

Все типы кардинальности

Тип Пример из жизни
1:1 Человек ↔ паспорт
1:N Ментор ↔ стажёры; компания ↔ сотрудники
N:1 Стажёры ↔ ментор (тот же 1:N с другой стороны)
M:N Студенты ↔ курсы (студент на нескольких курсах, на курсе несколько студентов)

Как реализуется в БД

CREATE TABLE mentors (
    mentor_id INT PRIMARY KEY,
    name      TEXT
);
 
CREATE TABLE trainees (
    trainee_id INT PRIMARY KEY,
    name       TEXT,
    mentor_id  INT REFERENCES mentors(mentor_id)  -- FK на N-стороне
);

Внешний ключ всегда живёт на N-стороне: каждый стажёр ссылается на одного ментора.

Когда было бы M:N

Если бы у стажёра могло быть несколько менторов одновременно (например, технический + бизнесовый), потребовалась бы таблица-связка:

CREATE TABLE mentor_trainee (
    mentor_id  INT REFERENCES mentors(mentor_id),
    trainee_id INT REFERENCES trainees(trainee_id),
    PRIMARY KEY (mentor_id, trainee_id)
);

Подводные камни

  1. «У стажёра обязательно ровно 1 ментор» vs «может быть 0 или 1». Это разные подтипы 1:N. Контролируется NOT NULL на mentor_id или его отсутствием.
  2. Связь N:1 — это та же 1:N с другой стороны. Различение нужно только при описании направления (от какой сущности смотрим).
  3. «Один к одному, потому что ментор — один». Нет: 1:1 — это когда у обеих сторон по одному. У ментора — много стажёров.

Эталонный ответ

Один ко многим (1:N) — у ментора несколько стажёров, у каждого стажёра один ментор.

Хочешь увидеть разбор?

Зарегистрируйся бесплатно — откроется развёрнутое решение этой задачи и ещё 4 на выбор.

Зарегистрироваться и увидеть разбор
Уже есть аккаунт? Войти