Sobes.tech
Back to questions
Middle
4

Как на физическом уровне реализовать связь один-к-одному между двумя таблицами?

Companies where asked
Сбер аналитика

Answer from AI

sobes.tech AI

Связь один-к-одному между двумя таблицами на физическом уровне реализуется несколькими способами:

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

  2. Уникальный внешний ключ — в одной таблице создаётся внешний ключ на другую таблицу с ограничением UNIQUE, чтобы гарантировать, что каждой записи соответствует не более одной записи в связанной таблице.

Пример с общим первичным ключом:

CREATE TABLE Person (
    PersonID INT PRIMARY KEY,
    Name VARCHAR(100)
);

CREATE TABLE Passport (
    PersonID INT PRIMARY KEY,
    PassportNumber VARCHAR(50),
    FOREIGN KEY (PersonID) REFERENCES Person(PersonID)
);

Здесь для каждой записи в Person может быть не более одной записи в Passport, и наоборот.