Junior — Middle
76
Какие типы связей между таблицами поддерживаются в PostgreSQL и как они работают?
Ответ от нейросети
sobes.tech AI
В PostgreSQL поддерживаются следующие основные типы связей между таблицами:
-
Один к одному (One-to-One)
- Каждая запись в первой таблице соответствует ровно одной записи во второй.
- Обычно реализуется с помощью уникального внешнего ключа.
-
Один ко многим (One-to-Many)
- Одна запись в первой таблице связана с несколькими записями во второй.
- Вторая таблица содержит внешний ключ, указывающий на первую.
-
Многие ко многим (Many-to-Many)
- Записи в обеих таблицах могут быть связаны множеством записей из другой таблицы.
- Реализуется через промежуточную таблицу (join table), которая содержит внешние ключи на обе таблицы.
Пример связи "один ко многим":
CREATE TABLE authors (
id SERIAL PRIMARY KEY,
name TEXT
);
CREATE TABLE books (
id SERIAL PRIMARY KEY,
title TEXT,
author_id INTEGER REFERENCES authors(id)
);
Здесь у каждого автора может быть много книг, а у каждой книги только один автор.
PostgreSQL обеспечивает целостность данных через ограничения внешних ключей, каскадные операции и индексы для эффективного поиска.