Back to questions
Middle
4
Как на физическом уровне реализовать связь один-к-одному между двумя таблицами?
Companies where asked
Сбер аналитика
Answer from AI
sobes.tech AI
Связь один-к-одному между двумя таблицами на физическом уровне реализуется несколькими способами:
-
Общий первичный ключ — обе таблицы имеют одинаковое значение первичного ключа, при этом в одной из таблиц этот ключ одновременно является и внешним ключом на другую таблицу.
-
Уникальный внешний ключ — в одной таблице создаётся внешний ключ на другую таблицу с ограничением 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, и наоборот.