Какие знаешь виды связей в БД

«Какие знаешь виды связей в БД» — вопрос из категории Базы данных, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В реляционных БД основные виды связей:

  1. Один к одному (1:1) - одна запись в таблице А связана с одной записью в таблице B. Например, пользователь и паспортные данные:
CREATE TABLE User (id INT PRIMARY KEY, name TEXT);
CREATE TABLE Passport (user_id INT PRIMARY KEY REFERENCES User(id), number TEXT);
  1. Один ко многим (1:N) - одна запись в таблице А связана с несколькими записями в таблице B. Например, пользователь и его заказы:
CREATE TABLE User (id INT PRIMARY KEY, name TEXT);
CREATE TABLE Order (id INT PRIMARY KEY, user_id INT REFERENCES User(id), total REAL);
  1. Многие ко многим (M:N) - реализуется через промежуточную таблицу. Например, студенты и курсы:
CREATE TABLE Student (id INT PRIMARY KEY, name TEXT);
CREATE TABLE Course (id INT PRIMARY KEY, title TEXT);
CREATE TABLE StudentCourse (student_id INT REFERENCES Student(id), course_id INT REFERENCES Course(id));

Также существуют самореферентные связи (рекурсивные), когда таблица ссылается сама на себя.