Какие знаешь типы связей таблиц в БД

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

Ответ

  1. Один к одному (1:1) - Каждая запись в таблице A связана с одной записью в таблице B.
    Пример: Пользователь и его паспортные данные.

  2. Один ко многим (1:N) - Одна запись в таблице A может быть связана с несколькими записями в таблице B.
    Пример: Автор и его книги.

  3. Многие ко многим (M:N) - Записи в таблице A могут быть связаны с несколькими записями в таблице B и наоборот.
    Реализуется через промежуточную таблицу.
    Пример: Студенты и курсы (связь через таблицу student_courses).

  4. Самореферентная связь - Таблица ссылается на саму себя.
    Пример: Сотрудники и их менеджеры (в той же таблице employees).

// Пример связи M:N в Go (GORM)
type Student struct {
    ID      uint
    Courses []Course `gorm:"many2many:student_courses;"`
}

type Course struct {
    ID       uint
    Students []Student `gorm:"many2many:student_courses;"`
}