Sobes.tech
Junior — Middle
76

Какие типы связей между таблицами поддерживаются в PostgreSQL и как они работают?

Ответ от нейросети

sobes.tech AI

В PostgreSQL поддерживаются следующие основные типы связей между таблицами:

  1. Один к одному (One-to-One)

    • Каждая запись в первой таблице соответствует ровно одной записи во второй.
    • Обычно реализуется с помощью уникального внешнего ключа.
  2. Один ко многим (One-to-Many)

    • Одна запись в первой таблице связана с несколькими записями во второй.
    • Вторая таблица содержит внешний ключ, указывающий на первую.
  3. Многие ко многим (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 обеспечивает целостность данных через ограничения внешних ключей, каскадные операции и индексы для эффективного поиска.