Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Postgres: primary, foreign, key

Что такое первичный и внешний ключ?

Вопрос проверяет базовое понимание реляционных баз данных и принципов целостности данных.

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

Первичный ключ однозначно идентифицирует строку в таблице. Внешний ключ ссылается на первичный ключ другой таблицы. Эти ключи обеспечивают целостность данных. Они предотвращают появление “битых” связей между таблицами.

Длинный ответ

Реляционные базы данных строятся вокруг связей между таблицами. Первичные и внешние ключи — основа этих связей.

1) Первичный ключ (Primary Key)

Определение:
Первичный ключ — это поле или набор полей, которые уникально идентифицируют каждую строку таблицы.

Основные свойства

  • Уникальность

  • Не может быть NULL

  • Один на таблицу

CREATE TABLE users (
    id SERIAL PRIMARY KEY,
    email TEXT
);

Здесь id — первичный ключ.

2) Внешний ключ (Foreign Key)

Определение:
Внешний ключ — это поле, которое ссылается на первичный ключ другой таблицы.

CREATE TABLE orders (
    id SERIAL PRIMARY KEY,
    user_id INT REFERENCES users(id)
);

user_id указывает, какому пользователю принадлежит заказ.

3) Зачем нужны ключи

  • Связь между таблицами

  • Защита от некорректных данных

  • Поддержка каскадных операций

ON DELETE CASCADE

4) Что будет без внешних ключей

  • Возможны “висячие” записи

  • Логика целостности уходит в код

  • Повышается риск ошибок

Краткий вывод

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

  • Аватар

    PHP Guru

    Mikhail Savin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    5

  • Сложность:

    4

Навыки

  • Postgres

    Postgres

Ключевые слова

#primary

#foreign

#key

Подпишись на PHP Developer в телеграм

  • Аватар

    PHP Guru

    Mikhail Savin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.