Какие знаешь виды связей в БД
Python
Middle
Аэрофлот
Какие знаешь виды связей в БД
Ответы
В реляционных базах данных есть несколько основных видов связей:
- **Один к одному (1:1)**
Одна запись в таблице А связана с одной записью в таблице Б. Например, пользователь и его паспортные данные.
```
CREATE TABLE users (id INT PRIMARY KEY, name TEXT);
CREATE TABLE passports (user_id INT PRIMARY KEY REFERENCES users(id), number TEXT);
```
- **Один ко многим (1:N)**
Одна запись в таблице А может быть связана с несколькими записями в таблице Б. Например, автор и его книги.
```
CREATE TABLE authors (id INT PRIMARY KEY, name TEXT);
CREATE TABLE books (id INT PRIMARY KEY, author_id INT REFERENCES authors(id), title TEXT);
```
- **Многие ко многим (M:N)**
Записи в таблице А могут быть связаны с несколькими записями в таблице Б и наоборот. Например, студенты и курсы. Требуется промежуточная таблица.
```
CREATE TABLE students (id INT PRIMARY KEY, name TEXT);
CREATE TABLE courses (id INT PRIMARY KEY, title TEXT);
CREATE TABLE student_courses (student_id INT REFERENCES students(id), course_id INT REFERENCES courses(id));
```
Также существуют рекурсивные связи (когда таблица ссылается сама на себя) и слабые связи (через внешние ключи без каскадного удаления).