Встречается на 5% собеседований по Analytics

Может ли быть одно значение и первичным, и внешним ключом

Да, значение может быть одновременно и первичным (Primary Key, PK), и внешним ключом (Foreign Key, FK). Это распространённая ситуация, особенно в отношениях один-к-одному или при наследовании сущностей.

Пример:
Таблица users с PK user_id, и таблица user_profiles, где user_id — это и PK (уникальный идентификатор профиля), и FK (ссылка на пользователя).

sql
CREATE TABLE users (
    user_id INT PRIMARY KEY,
    username VARCHAR(50) NOT NULL
);

CREATE TABLE user_profiles (
    user_id INT PRIMARY KEY,
    bio TEXT,
    FOREIGN KEY (user_id) REFERENCES users(user_id)
);

Нюансы:

  • Обеспечивает целостность данных: профиль не может существовать без пользователя.
  • Удобно для расширения сущностей без дублирования данных.
  • В некоторых БД (например, MySQL с InnoDB) FK должен быть проиндексирован, но PK уже подходит.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы