Реляционная схема: сотрудники и их отделы

Представленная схема уже реляционная: dept хранит отделы, staff — сотрудников, а внешний ключ задаёт связь «многие сотрудники — один отдел». Дублировать название отдела в staff не требуется.

Короткий ответ

Что ответить на собеседовании

Представленная схема уже реляционная: dept хранит отделы, staff — сотрудников, а внешний ключ задаёт связь «многие сотрудники — один отдел». Дублировать название отдела в staff не требуется.

Подробный разбор

Ответ с пояснениями

Условие

Преобразуйте представленные таблицы в корректную реляционную структуру.

CREATE TABLE dept (
    id INT PRIMARY KEY,
    name VARCHAR(100) NOT NULL
);

CREATE TABLE staff (
    id INT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    dept_id INT,
    FOREIGN KEY (dept_id) REFERENCES dept(id)
);

Ответ

Представленная схема уже реляционная: dept хранит отделы, staff — сотрудников, а внешний ключ задаёт связь «многие сотрудники — один отдел». Дублировать название отдела в staff не требуется.

dept.id и staff.id идентифицируют записи, staff.dept_id ссылается на существующий отдел либо остаётся NULL. Если каждый сотрудник обязательно относится к отделу, добавьте NOT NULL. Политику удаления отдела выбирают явно: запрет удаления при сотрудниках, SET NULL либо бизнес-перенос; CASCADE здесь может неожиданно удалить персонал. Индекс staff(dept_id) полезен для поиска сотрудников отдела. Одинаковые имена сотрудников допустимы и не должны служить ключом связи.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее