Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Python: unique, foreign, key

Как в SQL реализуется связь «один к одному» и в каких случаях она применяется?

Этот вопрос проверяет понимание реляционного моделирования и механики foreign key в SQL.

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

Связь «один к одному» реализуется через внешний ключ с уникальным ограничением (UNIQUE). Это означает, что каждая строка в первой таблице может быть связана максимум с одной строкой во второй. Такая связь используется, когда нужно логически разделить сущность на два набора данных или вынести часть редких/чувствительных полей в отдельную таблицу.

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

Связь One-to-One в реляционных базах данных означает, что каждой записи в таблице А соответствует не более одной записи в таблице B.


Как реализуется связь 1–1 в SQL

Способ: внешний ключ + уникальность

sql

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

CREATE TABLE user_profiles (
    id SERIAL PRIMARY KEY,
    user_id INT UNIQUE REFERENCES users(id),
    bio TEXT
);

Здесь user_id UNIQUE гарантирует, что одна запись user_profiles привязана ровно к одному user.


Когда используется связь «один к одному»

1. Декомпозиция большой таблицы

Разделение редко используемых или тяжёлых полей:

  • фото профиля

  • настройки пользователя

  • конфиденциальная информация

2. Оптимизация запросов

Основной объект загружается быстрее → дополнительные данные подгружаются по необходимости.

3. Разделение доменных сущностей

Например, User и Profile — сущности с разной логикой.


Пример в Django ORM

python

class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)

Итог

Связь 1–1 создаётся через foreign key + UNIQUE. Применяется, когда нужно отделить расширенные или чувствительные данные от основной сущности.

  • Аватар

    Python Guru

    Sergey Filichkin

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

Уровень

  • Рейтинг:

    4

  • Сложность:

    3

Навыки

  • Python

    Python

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

#unique

#foreign

#key

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

  • Аватар

    Python Guru

    Sergey Filichkin

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